nginx負載均衡演算法
輪詢(預設)
每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。weight
指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。
redis配置多伺服器,中也有這玩意。
- ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。
- fair(第三方)
按後端伺服器的響應時間來分配請求,響應時間短的優先分配。
- url_hash(第三方)
根據url的hash結果分配
Nginx的 反向代理和正向代理怎麼理解?
正向代理:
區域網中的電腦使用者想要直接訪問網路是不可行的,只能透過代理伺服器來訪問,這種代理服務就被稱為正向代理
正向代理,是在使用者端的。比如需要訪問某些國外網站,我們可能需要購買v–p–n。
並且v–p–n是在我們的使用者瀏覽器端設定的(並不是在遠端的伺服器設定)。
瀏覽器先訪問v–p–n地址,v–p–n 地址轉發請求,並最後將請求結果原路返回來。
反向代理
有正向代理,就有反向代理。(哈哈,因為起名字的人也會考慮,為什麼不叫代理,而是取名”正向”代理)。
反向代理是作用在伺服器端的,是一個虛擬ip(VIP)。對於使用者的一個請求,會轉發到多個後端處理器中的一臺來處理該具體請求。
大型網站都有DNS(域名解析伺服器),load balance(負載均衡器)等。
客戶端無法感知代理,因為客戶端訪問網路不需要配置,只要把請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取資料,然後再返回到客戶端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器地址,隱藏了真實伺服器IP地址
總結,nginx作為軟體能支援反向代理,也就是說nginx可以作為負載均衡器。
(負載均衡器可以提高網站效能,支援更高併發請求)
本作品採用《CC 協議》,轉載必須註明作者和本文連結