upstream負載模組說明
upstream是nginx的http upstream模組,這個模組通過乙個簡單的排程演算法來實現客戶端ip到後端伺服器的負載均衡,通過upstream指令指定乙個負載均衡的名稱。這個名稱任意指定,在後面需要用到的地方直接呼叫即可。
nginx的負載均衡模組目前支援4種排程演算法,
輪詢(預設):每個請求按照時間順序依次分配到不同的後端伺服器,如果後端伺服器宕機,故障伺服器自動被剔除,使使用者訪問不受影響。weight指定權重值,值越大訪問到的機率越大,這個看後端伺服器的配置水平而定。
ip_hash:每個請求按訪問ip的hash結果分配,這樣來自同乙個ip的訪客固定訪問乙個後端伺服器,有效解決了動態頁面存在的session共享問題。
fair:這是比上兩個更加智慧型的負載均衡演算法,此種演算法可以依據頁面代銷和載入時間的長短智慧型的進行負載均衡,也就是根據後端伺服器的響應時間來分配請求,響應時間短的優先分配。
url_hash:此方法按照訪問url的hash結果來分配請求,使每個url定向到同乙個後端伺服器,可以進一步提高後端快取伺服器的效率。
在http upstream模組中,可以通過server指令指定後端伺服器的ip位址和埠,同時還可以設定每個節點在負載均衡排程中的狀態,比如:down:表示當前server不參與負載均衡。backup:預留的備份,當其他所有非backup機器出故障或者繁忙的時候,才會請求backup機器,所以此機器的壓力也是最輕的。
max_fails:允許請求失敗的次數,預設為1,當超過最大次數時,返回
proxy_next_upstream模組定義的錯誤。
fail_timeout:在經歷了max_fails失敗後,暫停服務的時間。max_fails和faul_timeout一起使用。
注意:當負載排程演算法為ip_hash時,後端伺服器在負載均衡排程中的狀態不能是weight和backup。
Nginx負載均衡排程演算法
接收到的請求按照順序逐一分配到不同的後端伺服器,即使在使用過程中,某一台後端伺服器宕機,nginx會自動將該伺服器剔除出佇列,請求受理情況不會受到任何影響。這種方式下,可以給不同的後端伺服器設定乙個權重值 weight 用於調整不同的伺服器上請求的分配率 權重資料越大,被分配到請求的機率越大 該權重...
Nginx 支援的負載均衡排程演算法方式
nginx 支援的負載均衡排程演算法方式如下 weight 輪詢 預設 接收到的請求按照順序逐一分配到不同的後端伺服器,即使在使用過程中,某一台後端伺服器宕機,nginx 會自動將該伺服器剔除出佇列,請求受理情況不會受到任何影響。這種方式下,可以給不同的後端伺服器設定乙個權重值 weight 用於調...
Nginx的排程演算法
hash key consistent hash key consistent 基於指定的 key 進行hash運算 若使用consistent引數,將使用ketama一致性hash演算法 適用於後端是cache伺服器 如varnish 時使用 範例 hash request uri consist...