Nginx 負載均衡

2021-10-08 13:27:21 字數 1732 閱讀 1296

負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬、增加吞吐量、加強網路資料處理能力、提高網路的靈活性和可用性。負載均衡(load balance)其意思就是分攤到多個操作單元上進行執行。

我們在日常生活中經常免不了要去一些比較擁擠的地方,比如地鐵站、火車站、電影院、銀行等。無論是買票,還是排隊入場,這些場所一般都會設定多個服務點或者入口的。如果沒有人引導的話,大多數情況下,最近的入口會擠滿人。而哪些距離較遠的服務點或者入口就寬鬆很多。這種情況下,就會大大浪費資源,因為如果可以把這些排隊的人很好的分散到各個入口的話會大大縮短排隊時間。其實,**的建設也是一樣的。為了提公升**的服務能力,很多**採用集群部署,就像話劇院有多個入口一樣。這時候,就需要乙個協調者,來均衡的分配這些使用者的請求,可以讓使用者的可以均勻的分派到不同的伺服器上。

nginx 的負載均衡功能依賴於 ngx_http_upstream_module模組,upstream 模組應該放於 http 模組內。nginx 負載均衡策略主要有 熱備、輪詢、加權輪詢、最少連線數以及 ip hash。我們先來看看 upstream 怎麼用。

}}如果有 2 臺伺服器,當一台伺服器發生事故時,才啟用第二台伺服器給提供服務。即有 a、b 兩台伺服器,正常情況都是 a 在工作,當 a 猝死,b 開始工作。

upstream myserver
nginx 預設就是輪詢其權重都預設為 1,伺服器處理請求就轉圈來。即有 a、b、c 三颱伺服器,輪詢狀態 abcabcabc 轉圈工作。

upstream myserver
跟據配置的權重的大小而分發給不同伺服器不同數量的請求。如果不設定則變為輪詢。即有 a、b 兩台伺服器,a 的權重是 1,b 的權重是 2,則 a 工作一次,b 工作兩次,abbabb。

upstream myserver
nginx 會對客戶端請求的 ip 進行 hash 操作,然後根據 hash 結果將同乙個客戶端 ip 的請求分發給同一臺伺服器進行處理。採用這種方式的原因是,當你服務端的乙個特定 url 路徑被同乙個使用者連續訪問時,如果負載均衡策略還是輪詢的話,那該使用者的多次訪問會被打到各台伺服器上,這顯然並不高效(會建立多次http鏈結等問題)。甚至考慮一種極端情況,使用者需要分片上傳檔案到伺服器下,然後再由伺服器將分片合併,這時如果使用者的請求到達了不同的伺服器,那麼分片將儲存於不同的伺服器目錄中,導致無法將分片合併。採用 nginx 提供的 ip_hash 策略。既能滿足每個使用者請求到同一臺伺服器,又能滿足不同使用者之間負載均衡。

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

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

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

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

nginx 負載均衡 Nginx負載均衡策略

nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...

nginx負載均衡

nginx 的 upstream目前支援 4 種方式的分配 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。3 ip hash 每個請求按訪問ip的hash...

nginx負載均衡

nginx s stop quick exit nginx s quit graceful quit nginx s reload changing configuration,starting a new worker,quitting an old worker gracefully nginx...