在服務(wù)器集群中,Nginx起到一個代理服務(wù)器的角色(即反向代理),為了避免單獨一個服務(wù)器壓力過大,將來自用戶的請求轉(zhuǎn)發(fā)給不同的服務(wù)器。下面就來看下Nginx負載均衡策略有哪些。
創(chuàng)新互聯(lián)建站主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)祿豐,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
1、輪詢(默認)
每個請求按時間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動剔除。
upstream backserver {
server 192.168.0.17;
server 192.168.0.18;
}
2、指定權(quán)重
指定輪詢幾率,weight和訪問比率成正比,用于后端服務(wù)器性能不均的情況。
upstream backserver {
server 192.168.0.17 weight=8;
server 192.168.0.18 weight=10;
}
3、IP綁定 ip_hash
每個請求按訪問ip的hash結(jié)果分配,這樣每個訪客固定訪問一個后端服務(wù)器,可以解決session的問題。
upstream backserver {
ip_hash;
server 192.168.0.17:88;
server 192.168.0.18:80;
}
4、fair(第三方)
按后端服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配。
upstream backserver {
server server1;
server server2;
fair;
}
5、url_hash(第三方)
按訪問url的hash結(jié)果來分配請求,使每個url定向到同一個后端服務(wù)器,后端服務(wù)器為緩存時比較有效。
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
在需要使用負載均衡的server中增加
proxy_pass http://backserver/;
upstream backserver{
ip_hash;
server 127.0.0.1:9090 down; (down 表示當前的server暫時不參與負載)
server 127.0.0.1:8080 weight=2; (weight 默認為1.weight越大,負載的權(quán)重就越大)
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup; (其它所有的非backup機器down或者忙的時候,請求backup機器)
}
max_fails :允許請求失敗的次數(shù)默認為1,當超過最大次數(shù)時,返回proxy_next_upstream 模塊定義的錯誤。
fail_timeout:max_fails次失敗后,暫停的時間。