Nginx配置負載均衡


一、負載均衡

負載均衡就是將負載(工作任務,訪問請求)進行平衡、分攤到多個操作單元(服務器,組件)上進行執行。是解決高性能,單點故障(高可用),擴展性(水平伸縮)的終極解決方案。

 

二、反向代理與正向代理

反向代理:代理的是服務器端

正向代理:代理的是客戶端

三、負載均衡策略

(一)輪詢(默認)。每個請求,按時間順序逐一分配到不同的后端應用服務器節點,如果后端服務出現故障,nginx能夠自動剔除該節點。如:

  1、在server模塊中,配置nginx地址、端口以及負載服務。

  

 

  2、在http中,server模塊外,進行負載均衡負載服務器輪詢配置

   

 

(二)權重,weight。默認為1,權重越高,被分配的客戶端越多,用於后端服務器性能不均的情況。如:

  

 

 (三)ip_hash。獲取每個訪問的IP,根據hash計算結果分配,每個訪訪客固定訪問一個后端服務器,可以解決session丟失問題,但也可能導致部分服務器超負荷。但可以與weight配合使用。如:

  

 

 (四)least_conn,連接數最少的分配。可以與weight配合使用

  

四、其他關鍵字配置

 backup和down。

  backup,標記當前server為預留的備用服務器,當所有應用服務器均停止服務時,才會啟用被backup標記的服務器,適用於熱更新的情況(一般先更新備份服務器,然后關停部分服務器,更新關停的部分服務器,再關閉剩下的服務器同時啟動更新完的應用服務器)

  down,標記表示改server當前不參與提供負載均衡服務,比較適用於對服務器進行維護的情況。

  如:

  

 max_fails和 fail_timeout,默認1次,10秒。一般建議設置為10次,60秒。(簡單的理解:在周期內,連接失敗次數達到最大次數,則判斷為節點不可用,將請求轉交給下個節點處理,等下一個周期再次去請求)

  這個是Nginx在負載均衡功能中,用於判斷后端節點狀態,所用到兩個參數。

  Nginx基於連接探測,如果發現后端異常,在單位周期為fail_timeout設置的時間中達到max_fails次數,這個周期次數內,如果后端同一個節點不可用,那么接將把節點標記為不可用,並等待下一個周期(同樣時常為fail_timeout)再一次去請求,判斷是否連接是否成功。

  Nginx只有當有訪問時后,才發起對后端節點探測。如果本次請求中,節點正好出現故障,Nginx將把請求轉交給接下來的節點處理。所以不會影響到這次請求的正常進行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM