nginx支持的負載均衡調度算法方式如下:
輪詢(默認算法):每個請求按時間順序分配到不同后端服務器棚辽,如果某個后端服務器宕機,能自動剔除掉冰肴。
weight輪詢:nginx反向代理接收到客戶端收到的請求后屈藐,可以給不同的后端服務器設置一個權重值(weight)榔组,用于調整不同的服務器上請求的分配率;權重數(shù)據(jù)越大联逻,被分配到請求的幾率越大搓扯;該權重值,主要是針對實際工作環(huán)境中不同的后端服務器配置進行配置的包归。比如說有些服務器的硬件配置高锨推,比重就會比較大一點。
upstream backend {
? ? server 192.168.0.14 weight=10;
? ? server 192.168.0.15 weight=10;
}
ip_hash:每個請求按照發(fā)起客戶端ip的hash結果進行匹配箫踩,這樣的算法每一個固定的ip地址的客戶端總會訪問到同一個后端服務器爱态,這也在一定程度上解決了集群部署環(huán)境下session共享的問題。
upstream backend {
? ? ip_hash;
? ? server? 172.16.125.76:8066 weight=10;?
? ? server? 172.16.125.76:8077 down;?
? ? server? 172.16.0.18:8066 max_fails=3 fail_timeout=30s;?
? ? server? 172.16.0.18:8077 backup;?
}
fair:智能調整調度算法境钟,動態(tài)的根據(jù)后端服務器的請求處理器的請求處理響應的時間來進行均衡分配锦担,響應時間短,處理效率高的服務器分配到請求的概率高慨削,響應時間長洞渔,處理效率低的服務器分配到的請求少;結合了前兩者的優(yōu)點的一種調度算法缚态。但是需要注意的是nginx默認不支持fair算法磁椒,如果要使用這種算法,需要安裝upstream_fair模塊玫芦。
url_hash:按照訪問的url的hash結果分配請求浆熔,每個請求的url會指向后端固定的某個服務器,可以在nginx作為靜態(tài)服務器的情況下提高緩存效率桥帆。同樣要注意Nginx默認不支持這種調度算法医增,要使用的話需要安裝nginx的hash軟件包。