深入淺析nginx四種調(diào)度算法和進(jìn)階
upstream 支持4種負(fù)載均衡調(diào)度算法:
A)輪詢(默認(rèn)):每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器;
B)ip_hash:每個(gè)請(qǐng)求按訪問IP的hash結(jié)果分配,同一個(gè)IP客戶端固定訪問一個(gè)后端服務(wù)器;
C)url_hash:按訪問url的hash結(jié)果來分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器;
D)fair:這是比上面兩個(gè)更加智能的負(fù)載均衡算法。此種算法可以依據(jù)頁面大小和加載時(shí)間長(zhǎng)短智能地進(jìn) 行負(fù)載均衡,也就是根據(jù)后端服務(wù)器的響應(yīng)時(shí)間來分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。Nginx本身是不支持 fair的,如果需要使用這種調(diào)度算法,必須下載Nginx的upstream_fair模塊。
1)默認(rèn)輪訓(xùn)
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
...
upstream roundrobin { //定義調(diào)度算法
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; //返回真實(shí)IP
proxy_pass http://roundrobin; //代理指向調(diào)度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
然后訪問驗(yàn)證~
客戶端能正常輪流訪問兩個(gè)WEB服務(wù)器; 查看兩個(gè)WEB服務(wù)器的日志。
2)基于hash
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
...
upstream roundrobin {
ip_hash; //添加參數(shù)支持哈希
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
然后訪問驗(yàn)證~
只能訪問一個(gè)WEB服務(wù)器; 查看兩個(gè)WEB服務(wù)器的日志。
3)設(shè)置后端負(fù)載均衡服務(wù)器的狀態(tài):
down,表示當(dāng)前的server暫時(shí)不參與負(fù)載均衡。 backup,預(yù)留的備份機(jī)器。當(dāng)其他所有的非backup機(jī)器出現(xiàn)故障或者忙的時(shí)候,才會(huì)請(qǐng)求backup機(jī)器,因 此這臺(tái)機(jī)器的壓力最輕。
注意:backup不能和ip_hash同時(shí)配置。因?yàn)閕p_hash只能訪問同一臺(tái)服務(wù)器,而backup是在只有所有參與
負(fù)載均衡的服務(wù)器出現(xiàn)故障時(shí),才會(huì)請(qǐng)求備份機(jī)。當(dāng)所有負(fù)載均衡的服務(wù)器出現(xiàn)故障了,ip_hash的將無法 請(qǐng)求了。
[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; //設(shè)置備份機(jī)器
}
[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
關(guān)閉兩臺(tái)WEB服務(wù)器,能訪問到備機(jī); 注意:只有所有參與負(fù)載均衡的服務(wù)器出現(xiàn)故障時(shí),才會(huì)請(qǐng)求備份機(jī)
總結(jié)
以上所述是小編給大家介紹的nginx四種調(diào)度算法和進(jìn)階,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Windows?Server?Nginx?反向代理Spring?Boot配置無效報(bào)404未找到的問題
一個(gè)Spring?Boot的系統(tǒng),開發(fā)完成發(fā)布到Windows服務(wù)器里,使用nginx作為反向代理,修改刷新配置文件,nginx.conf,總是報(bào)錯(cuò)404,這篇文章主要介紹了Windows?Server?Nginx?反向代理Spring?Boot配置無效?404?未找到的問題及解決方案2024-01-01
使用nginx實(shí)現(xiàn)一個(gè)端口和ip訪問多個(gè)vue前端的全過程
為滿足單端口訪問多個(gè)前端應(yīng)用的需求,需要對(duì)nginx進(jìn)行配置,同時(shí)修改vue項(xiàng)目的publicPath參數(shù),這篇文章主要介紹了使用nginx實(shí)現(xiàn)一個(gè)端口和ip訪問多個(gè)vue前端的相關(guān)資料,需要的朋友可以參考下2024-09-09
nginx找到默認(rèn)根目錄(root?html)的方法
這篇文章主要給大家介紹了nginx如何找到默認(rèn)根目錄(root?html),文中給出詳細(xì)的解決方法,通過代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2023-11-11
詳解php+nginx 服務(wù)發(fā)生500 502錯(cuò)誤排查思路
這篇文章主要介紹了詳解php+nginx 服務(wù)發(fā)生500 502錯(cuò)誤排查思路,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Nginx指令add_header和proxy_set_header的區(qū)別及說明
這篇文章主要介紹了Nginx指令add_header和proxy_set_header的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
寶塔里nginx自動(dòng)停止的解決方法(檢測(cè)腳本實(shí)現(xiàn)每分鐘檢測(cè)并自動(dòng)啟用)
nginx突然停止的原因有多種,這里不列舉,可以排查具體原因,這里主要為大家分享nginx服務(wù)的檢測(cè)腳本,達(dá)到自動(dòng)啟用的實(shí)現(xiàn)2025-02-02
nginx 配置代理服務(wù)地址最后多加反斜杠和不加反斜杠的區(qū)別小結(jié)
在使用Nginx配置代理服務(wù)時(shí),地址最后是否添加反斜杠(/)會(huì)對(duì)代理的URL處理產(chǎn)生影響,下面就來具體介紹一下,感興趣的可以了解一下2024-08-08
Nginx修復(fù)CORS漏洞的實(shí)現(xiàn)方法
本文主要介紹了CORS不安全配置漏洞的修復(fù)方法,通過修改Nginx配置,將Access-Control-Allow-Origin設(shè)置為正確的域名,以防止跨域資源共享時(shí)的隱私泄露風(fēng)險(xiǎn)2024-11-11

