您好,登錄后才能下訂單哦!
這篇文章主要介紹“Nginx幾種負載均衡算法及配置”,在日常操作中,相信很多人在Nginx幾種負載均衡算法及配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Nginx幾種負載均衡算法及配置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Nginx負載均衡(工作在七層“應用層”)功能主要是通過upstream模塊實現,Nginx負載均衡默認對后端服務器有健康檢測的能力,僅限于端口檢測,在后端服務器比較少的情況下負載均衡能力表現突出。
Nginx的幾種負載均衡算法:
1、輪詢(默認):每個請求按時間順序逐一分配到不同的后端服務器,如果后端某臺服務器宕機,則自動剔除故障機器,使用戶訪問不受影響。
2、weight:指定輪詢權重,weight值越大,分配到的幾率就越高,主要用于后端每臺服務器性能不均衡的情況。
3、ip_hash:每個請求按訪問IP的哈希結果分配,這樣每個訪客固定訪問一個后端服務器,可以有效的解決動態網頁存在的session共享問題。
4、fair(第三方):更智能的一個負載均衡算法,此算法可以根據頁面大小和加載時間長短智能地進行負載均衡,也就是根據后端服務器的響應時間來分配請求,響應時間短的優先分配。如果想要使用此調度算法,需要Nginx的upstream_fair模塊。
5、url_hash(第三方):按訪問URL的哈希結果來分配請求,使每個URL定向到同一臺后端服務器,可以進一步提高后端緩存服務器的效率。如果想要使用此調度算法,需要Nginx的hash軟件包。
在upstream模塊中,可以通過server命令指定后端服務器的IP地址和端口,同時還可以設置每臺后端服務器在負載均衡調度中的狀態,常用的狀態有以下幾種:
1、down:表示當前server暫時不參與負載均衡。
2、backup:預留的備份機,當其他所有非backup機器出現故障或者繁忙的時候,才會請求backup機器,這臺機器的訪問壓力最輕。
3、max_fails:允許請求的失敗次數,默認為1,配合fail_timeout一起使用
4、fail_timeout:經歷max_fails次失敗后,暫停服務的時間,默認為10s(某個server連接失敗了max_fails次,則nginx會認為該server不工作了。同時,在接下來的 fail_timeout時間內,nginx不再將請求分發給失效的server。)
下面是一個負載均衡的配置示例,這里只列出http配置段,省略了其他部分配置:
http { upstream whsirserver { server 192.168.0.120:80 weight=5 max_fails=3 fail_timeout=20s; server 192.168.0.121:80 weight=1 max_fails=3 fail_timeout=20s; server 192.168.0.122:80 weight=3 max_fails=3 fail_timeout=20s; server 192.168.0.123:80 weight=4 max_fails=3 fail_timeout=20s; } server { listen 80; server_name blog.whsir.com; index index.html index.htm; root /data/www; location / { proxy_pass http://whsirserver; proxy_next_upstream http_500 http_502 error timeout invalid_header; } } }
upstream負載均衡開始,通過upstream指定了一個負載均衡器的名稱為whsirserver,這個名稱可以自己定義,在后面proxy_pass直接調用即可。
proxy_next_upstream參數用來定義故障轉移策略,當后端服務器節點返回500、502和執行超時等錯誤時,自動將請求轉發到upstream負載均衡器中的另一臺服務器,實現故障轉移。
到此,關于“Nginx幾種負載均衡算法及配置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。