Nginx?反向代理為什么可以提高網(wǎng)站性能?
? 請求如果直接發(fā)送到同步處理的后端,?那么從收到請求到把響應(yīng)發(fā)出去這段時間,?一個進程的資源就被占用了.?在慢連接的情況下,?這個進程除了處理之外大多數(shù)時間基本耗費在了無意義的等待上. Nginx 在這方面的優(yōu)勢就在于它的異步非阻塞模型.?這意味著 Nginx?可以通過基于事件的方式同時處理和維護多個請求,?而后端就只需要去做邏輯計算,?節(jié)約了等待時間去處理更多的請求.
反向代理:
在計算機世界里,?由于單個服務(wù)器處理客戶端(用戶)請求的能力有限,?當(dāng)用戶的接入請求蜂擁而至?xí)r,?會造成服務(wù)器忙不過來的局面,?可以使用多個服務(wù)器共同分擔(dān)成千上萬的用戶請求,?這些服務(wù)器提供相同的服務(wù),?對于用戶來說,?根本感覺不到任何差別.
反向代理的實現(xiàn):
1.?需要有一個負(fù)載均衡設(shè)備來分發(fā)用戶請求,?將用戶請求分發(fā)到空閑的服務(wù)器上.
2.?服務(wù)器返回自己的服務(wù)到負(fù)載均衡設(shè)備.
3.?負(fù)載均衡將服務(wù)器的服務(wù)返回用戶.
以上的潛臺詞是:?用戶和負(fù)載均衡設(shè)備直接通信,?也意味著用戶做服務(wù)器域名解析時,?解析得到的 IP?其實是負(fù)載均衡的 IP预皇,而不是服務(wù)器的 IP乳讥,這樣一個好處是菜皂,當(dāng)新加入/移走服務(wù)器時逮京,僅僅需要修改負(fù)載均衡的服務(wù)器列表治唤,?而不會影響現(xiàn)有的服務(wù).
正向代理:
我們常說的代理就是正向代理泽裳,正向代理的過程笋额,他隱藏了真實的請求客戶端冯袍,服務(wù)端不知道真實的客戶端是誰菩收,客戶端請求的服務(wù)被代理服務(wù)器代替來請求梨睁。
反向代理:
反向代理隱藏了真實的服務(wù)端,當(dāng)我們請求?www.baidu.com 的時候娜饵,背后可能有成千上萬臺服務(wù)器為我們服務(wù)坡贺,但具體那一臺,你不知道箱舞,也不需要知道遍坟,你只需要知道反向代理服務(wù)器是誰就好了,www.baidu.com?就是我們的反向代理服務(wù)器晴股,反向代理服務(wù)器會幫我們把請求轉(zhuǎn)發(fā)到真實的服務(wù)器那里. Nginx?就是性能非常好的反向代理服務(wù)器,?用來做負(fù)載均衡.
兩者的區(qū)別在于代理的對象不一樣:?正向代理的對象是客戶端愿伴,反向代理的對象是服務(wù)端.