Nginx 負載均衡演算法

2022-07-15 16:54:12 字數 1963 閱讀 3136

nginx負載均衡演算法

1、輪詢(預設)

每個請求按時間順序逐一分配到不同的後端服務,如果後端某台伺服器宕機,自動剔除故障系統,使使用者訪問不受影響。

upstream tomcat_server {

server 192.168.10.11:8080 weight=1;

server 192.168.10.12:8080 weight=1;

weight (輪詢權值)

weight的值越大分配到的訪問概率越高,主要用於後端每台伺服器效能不均衡的情況下。或者僅僅為在主從的情況下設定不同的權值,達到合理有效的利用主機資源。

upstream tomcat_server {

server 192.168.10.11:8080 weight=1;

server 192.168.10.12:8080 weight=2;

2、least_conn

least_connected 方式可以更公平的將負載分配到多個機器上面。使用least_connected,nginx不會將請求分發到反面的機器上面,而且將新的請求分發到較清閒的機器上面。

upstream tomcat_server {

least_conn;

server 192.168.10.11:8080 weight=1;

server 192.168.10.12:8080 weight=1;

3、ip_hash

每個請求按訪問ip的雜湊結果分配,使來自同乙個ip的訪客固定訪問一台後端伺服器,並且可以有效解決動態網頁存在的session共享問題。

upstream tomcat_server {

ip_hash;

server 192.168.10.11:8080 weight=1;

server 192.168.10.12:8080 weight=1;

4、fair

比weight、ip_hash更智慧型的負載均衡演算法,fair演算法可以根據頁面大小和載入時間長短智慧型地進行負載均衡,也就是根據後端伺服器的響應時間來分配請求,響應時間短的優先分配。nginx本身不支援fair,如果需要這種排程演算法,則必須安裝upsteram_fair模組。

upstream tomcat_server {

fair;

server 192.168.10.11:8080 weight=1;

server 192.168.10.12:8080 weight=1;

5、url_hash

按訪問的url的雜湊結果來分配請求,使每個url定向到一台後端伺服器,可以進一步提高後端快取伺服器的效率。nginx本身不支援url_hash,如果需要這種排程演算法,則必須安裝nginx的hash軟體包。

upstream tomcat_server {

hash $request_uri;

hash_method crc32;

server 192.168.10.11:8080 weight=1;

server 192.168.10.12:8080 weight=1;

nginx負載均衡排程狀態

在nginx upstream模組中,可以設定每台後端伺服器在負載均衡排程中的狀態,常用的狀態有:

down:表示當前的server暫時不參與負載均衡。

backup:預留的備份機器。當其他所有的非backup機器出現故障或者忙的時候,才會請求backup機器,因此這台機器的訪問壓力最低。

max_fails:允許請求失敗的次數,預設為1,當超過最大次數時,返回proxy_next_upstream模組定義的錯誤。

fail_timeout:請求失敗超時時間,在經歷了max_fails次失敗後,暫停服務的時間。max_fails和fail_timeout可以一起使用。

nginx 負載均衡演算法

1 輪詢 就是按照時間順序分配下乙個請求的伺服器。2 權值輪詢 給每乙個伺服器加上權值,權值和分配的請求成正比,比較適應於伺服器配置不均的情況。upstream backend 3 ip雜湊 根據ip的雜湊值分配,這樣每個ip每次訪問的伺服器都相同,這樣session的處理會容易些。upstream...

Nginx 負載均衡演算法

1 輪詢 預設 每個請求按順序逐一分配到不同的伺服器,如果某台伺服器宕機,自動剔除故障系統,整個服務保證可用 2 weight 輪詢加權 weight的值越大分配到的訪問概率越高 upstream bakend 3 ip hash 每個請求按訪問ip的雜湊結果分配,使來自同乙個ip的訪客固定訪問一台...

Nginx負載均衡演算法

目前只有思路,過兩天上 伺服器 權重 a 5 b 3 c 2 1 總的權重是10,先隨機出乙個數字 肯定是10以內的數字 2 然後遍歷權重的陣列 5,3,2 乙個乙個的去比較 核心 遍歷ip 拿到權重weight if offset 數形結合 權重座標 0 5 8 10 a b c 如果offset...