首頁 > 軟體

nginx 負載均衡輪詢方式設定詳解

2022-03-06 13:00:38

一、概述

Nginx的upstream目前支援的分配演演算法:
1、round-robin 輪詢1:1輪流處理請求(預設)
每個請求按時間順序逐一分配到不同的應用伺服器,如果應用伺服器down掉,自動剔除,剩下的繼續輪詢。
2、weight 權重(加權輪詢)
通過設定權重,指定輪詢機率,權重和存取比率成正比,用於應用伺服器效能不均的情況。
3、ip_hash 雜湊演演算法
每個請求按存取ip的hash結果分配,這樣每個訪客固定存取一個應用伺服器,可以解決session共用的問題。應用伺服器如果故障需要手工down掉。
引數含義:
down:表示單前的server暫時不參與負載
weight:預設為1,weight越大,負載的權重就越大。
max_fails:允許請求失敗的次數預設為1.當超過最大次數時,返回proxy_next_upstream模組定義的錯誤
fail_timeout:max_fails次失敗後,暫停的時間。
backup:其它所有的非backup機器down或者忙的時候,請求backup機器。

二、設定

 1、round-robin 輪詢(預設)

upstream tg-t4 {
    server 10.0.0.110:8099;
    server 10.0.0.110:8098;
}
server {
    listen 8096;
    server_name www.tg-t4.com;
    location / {
    proxy_pass http://tg-t4;
    }
}

存取結果:ABABABABA

2、加權輪詢

upstream tg-t4 {
    server 10.0.0.110:8099 weight=2;
    server 10.0.0.110:8098 weight=5;
}
server {
    listen 8096;
    server_name www.tg-t4.com;
    location / {
    proxy_pass http://tg-t4;
    }
}

存取結果:ABBABB ABBABB

注:weight影響的存取結果是按最小比例算的,而不是理想狀態下:AABBBBB AABBBBB

3、ip_hash

upstream tg-t4 {
    server 10.0.0.110:8099;
    server 10.0.0.110:8098;
    ip_hash;
}
server {
    listen 8096;
    server_name www.tg-t4.com;
    location / {
    proxy_pass http://tg-t4;
    }
}

存取結果:

IP1:AAAAAA

IP2:BBBBBB

4、熱備

upstream tg-t4 {
    server 10.0.0.110:8099;
    server 10.0.0.110:8098 backup;
}
​
server {
    listen 8096;
    server_name www.tg-t4.com;
    location / {
    proxy_pass http://tg-t4;
    }
}

存取結果:

存取1:兩個服務均正常。AAAAAA

存取2:停用10.0.0.110:8099。BBBBBB

存取3:重啟10.0.0.110:8099。AAAAAA

5、加引數優化

upstream tg-t4 {
    server 10.0.0.110:8099 weight=1 max_fails=2 fail_timeout=2;
    server 10.0.0.110:8098 weight=3 max_fails=2 fail_timeout=2 backup;
}
​
server {
    listen 8096;
    server_name www.tg-t4.com;
    location / {
    proxy_pass http://tg-t4;
    }
}

存取結果:同4

backup優先順序最高,當有了這個引數設定,那麼所對應的服務只能作為熱備。

組態檔參考:

https://www.jb51.net/article/235779.htm

輪詢方式參考:

https://www.jb51.net/article/178868.htm

七層與四層參考:

https://www.jb51.net/article/111345.htm

到此這篇關於nginx 負載均衡輪詢方式設定的文章就介紹到這了,更多相關nginx 負載均衡內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com