Nginx中怎么實現(xiàn)負載均衡,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)是一家專業(yè)從事成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,成都創(chuàng)新互聯(lián)依托強大的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!upstream 支持4種負載均衡調(diào)度算法:
A)輪詢(默認):每個請求按時間順序逐一分配到不同的后端服務(wù)器;
B)ip_hash:每個請求按訪問IP的hash結(jié)果分配,同一個IP客戶端固定訪問一個后端服務(wù)器??梢员WC來自同一ip的請求被打到固定的機器上,可以解決session問題。
C)url_hash:按訪問url的hash結(jié)果來分配請求,使每個url定向到同一個后端服務(wù)器。后臺服務(wù)器為緩存的時候效率。
D)fair:這是比上面兩個更加智能的負載均衡算法。此種算法可以依據(jù)頁面大小和加載時間長短智能地進行負載均衡,也就是根據(jù)后端服務(wù)器的響應時間來分配請求,響應時間短的優(yōu)先分配。Nginx本身是不支持 fair的,如果需要使用這種調(diào)度算法,必須下載Nginx的 upstream_fair模塊。
1、默認輪訓
打開 nginx 配置文件
[root@master ~]# vi /etc/nginx/conf.d/default.conf
寫輪訓配置
#設(shè)定負載均衡服務(wù)器列表 upstream roundrobin { #后端服務(wù)器訪問規(guī)則 server 192.168.1.115:8080 weight=1; #server1 server 192.168.1.131:8081 weight=1; #server1 server 192.168.1.94:8090 weight=1; #server3 } server { listen 80; server_name 192.168.1.131; location / { proxy_pass http://roundrobin; } }
配置完成后
//檢查 nginx 配置是否正確 nginx -t //重新加載 nginx 配置 service nginx reload
當訪問 http://192.168.131 的時候,會把這個請求負載到 192.168.1.115 的 8080 端口、192.168.1.115 的 8080 端口、192.168.1.115 的 8080 端口。負載的權(quán)重由 weight 來決定,默認為 1 ,weight 越大,權(quán)重就越大。
2、基于hash
#設(shè)定負載均衡服務(wù)器列表 upstream roundrobin { #后端服務(wù)器訪問規(guī)則 ip_hash; #添加參數(shù)支持哈希 server 192.168.1.115:8080 weight=1; #server1 server 192.168.1.131:8080 weight=1; #server1 server 192.168.1.94:8090 weight=1; #server3 } server { listen 80; server_name 192.168.1.131; location / { proxy_pass http://roundrobin; } }
設(shè)置后端負載均衡服務(wù)器的狀態(tài)
down,表示當前的server暫時不參與負載均衡。
backup,預留的備份機器。當其他所有的非backup機器出現(xiàn)故障或者忙的時候,才會請求backup機器,因 此這臺機器的壓力最輕。
注意:backup不能和ip_hash同時配置。因為ip_hash只能訪問同一臺服務(wù)器,而backup是在只有所有參與 負載均衡的服務(wù)器出現(xiàn)故障時,才會請求備份機。當所有負載均衡的服務(wù)器出現(xiàn)故障了,ip_hash的將無法 請求了。
#設(shè)定負載均衡服務(wù)器列表 upstream roundrobin { #后端服務(wù)器訪問規(guī)則 server 192.168.1.115:8080 weight=1; #server1 server 192.168.1.131:8080 down; #server2 不參與負載 server 192.168.1.94:8090 backup; #server3 備份機 } server { listen 80; server_name 192.168.1.131; location / { proxy_pass http://roundrobin; } }
看完上述內(nèi)容,你們掌握Nginx中怎么實現(xiàn)負載均衡的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!