什麼是反向代理

說到反向代理就先講一下正向代理

正向代理:客戶端想要訪問一個服務器,但是它可能無法直接訪問這臺服務器,這時候這可找一臺可以訪問目標服務器的另外一臺服務器,而這臺服務器就被當做是代理人的角色 ,稱之爲代理服務器,於是客戶端把請求發給代理服務器,由代理服務器獲得目標服務器的數據並返回給客戶端。客戶端是清楚目標服務器的地址的,而目標服務器是不清楚來自客戶端,它只知道來自哪個代理服務器,所以正向代理可以屏蔽或隱藏客戶端的信息。

反向代理:從上面的正向代理,你會大概知道代理服務器是爲客戶端作代理人,它是站在客戶端這邊的。其實反向代理就是代理服務器爲服務器作代理人,站在服務器這邊,它就是對外屏蔽了服務器的信息,常用的場景就是多臺服務器分佈式部署,像一些大的網站,由於訪問人數很多,就需要多臺服務器來解決人數多的問題,這時這些服務器就由一個反向代理服務器來代理,客戶端發來請求,先由反向代理服務器,然後按一定的規則分發到明確的服務器,而客戶端不知道是哪臺服務器。常常用nginx來作反向代理。

Nginx的負載均衡:

負載:就是Nginx接受請求

均衡:Nginx將收到的請求按照一定的規則分發到不同的服務器進行處理

Nginx支持的負載均衡調度算法方式如下:

weight輪詢(默認):接收到的請求按照順序逐一分配到不同的後端服務器,即使在使用過程中,某一臺後端服務器宕機,Nginx會自動將該服務器剔除出隊列,請求受理情況不會受到任何影響。 這種方式下,可以給不同的後端服務器設置一個權重值(weight),用於調整不同的服務器上請求的分配率;權重數據越大,被分配到請求的機率越大;該權重值,主要是針對實際工作環境中不同的後端服務器硬件配置進行調整的。

ip_hash:每個請求按照發起客戶端的ip的hash結果進行匹配,這樣的算法下一個固定ip地址的客戶端總會訪問到同一個後端服務器,這也在一定程度上解決了集羣部署環境下session共享的問題。

fair:智能調整調度算法,動態的根據後端服務器的請求處理到響應的時間進行均衡分配,響應時間短處理效率高的服務器分配到請求的概率高,響應時間長處理效率低的服務器分配到的請求少;結合了前兩者的優點的一種調度算法。但是需要注意的是Nginx默認不支持fair算法,如果要使用這種調度算法,請安裝upstream_fair模塊。

url_hash:按照訪問的url的hash結果分配請求,每個請求的url會指向後端固定的某個服務器,可以在nginx作爲靜態服務器的情況下提高緩存效率。同樣要注意Nginx默認不支持這種調度算法,要使用的話需要安裝nginx的hash軟件包

原文:https://blog.csdn.net/aqleung/article/details/80923470

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章