深入淺析nginx四種調度算法和進階
upstream 支持4種負載均衡調度算法:
A)輪詢(默認):每個請求按時間順序逐一分配到不同的后端服務器;
B)ip_hash:每個請求按訪問IP的hash結果分配,同一個IP客戶端固定訪問一個后端服務器;
C)url_hash:按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器;
D)fair:這是比上面兩個更加智能的負載均衡算法。此種算法可以依據頁面大小和加載時間長短智能地進 行負載均衡,也就是根據后端服務器的響應時間來分配請求,響應時間短的優(yōu)先分配。Nginx本身是不支持 fair的,如果需要使用這種調度算法,必須下載Nginx的upstream_fair模塊。
1)默認輪訓
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
...
upstream roundrobin { //定義調度算法
server 192.168.31.33 weight=1; //server1
server 192.168.31.237 weight=1; //server2
}
...
location / {
proxy_set_header X-Real-IP $remote_addr; //返回真實IP
proxy_pass http://roundrobin; //代理指向調度roundrobin
}
[root@proxy ~]# killall -9 nginx
[root@proxy ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@proxy ~]# nginx
然后訪問驗證~
客戶端能正常輪流訪問兩個WEB服務器; 查看兩個WEB服務器的日志。
2)基于hash
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
...
upstream roundrobin {
ip_hash; //添加參數支持哈希
server 192.168.31.33 weight=1;
server 192.168.31.237 weight=1;
}
[root@proxy ~]# killall -9 nginx
[root@proxy ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@proxy ~]# nginx
然后訪問驗證~
只能訪問一個WEB服務器; 查看兩個WEB服務器的日志。
3)設置后端負載均衡服務器的狀態(tài):
down,表示當前的server暫時不參與負載均衡。 backup,預留的備份機器。當其他所有的非backup機器出現故障或者忙的時候,才會請求backup機器,因 此這臺機器的壓力最輕。
注意:backup不能和ip_hash同時配置。因為ip_hash只能訪問同一臺服務器,而backup是在只有所有參與
負載均衡的服務器出現故障時,才會請求備份機。當所有負載均衡的服務器出現故障了,ip_hash的將無法 請求了。
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
upstream roundrobin {
server 192.168.31.33 weight=1;
server 192.168.31.35 weight=1;
server 192.168.31.237 backup; //設置備份機器
}
[root@proxy ~]# killall -9 nginx
[root@proxy ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@proxy ~]# nginx
關閉兩臺WEB服務器,能訪問到備機; 注意:只有所有參與負載均衡的服務器出現故障時,才會請求備份機
總結
以上所述是小編給大家介紹的nginx四種調度算法和進階,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
Windows?Server?Nginx?反向代理Spring?Boot配置無效報404未找到的問題
一個Spring?Boot的系統(tǒng),開發(fā)完成發(fā)布到Windows服務器里,使用nginx作為反向代理,修改刷新配置文件,nginx.conf,總是報錯404,這篇文章主要介紹了Windows?Server?Nginx?反向代理Spring?Boot配置無效?404?未找到的問題及解決方案2024-01-01
詳解php+nginx 服務發(fā)生500 502錯誤排查思路
這篇文章主要介紹了詳解php+nginx 服務發(fā)生500 502錯誤排查思路,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
Nginx指令add_header和proxy_set_header的區(qū)別及說明
這篇文章主要介紹了Nginx指令add_header和proxy_set_header的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
寶塔里nginx自動停止的解決方法(檢測腳本實現每分鐘檢測并自動啟用)
nginx突然停止的原因有多種,這里不列舉,可以排查具體原因,這里主要為大家分享nginx服務的檢測腳本,達到自動啟用的實現2025-02-02
nginx 配置代理服務地址最后多加反斜杠和不加反斜杠的區(qū)別小結
在使用Nginx配置代理服務時,地址最后是否添加反斜杠(/)會對代理的URL處理產生影響,下面就來具體介紹一下,感興趣的可以了解一下2024-08-08

