nginx負載均衡

2021-10-14 06:56:44 字數 1606 閱讀 4615

單從字面上的意思來理解就可以解釋n臺伺服器平均分擔負載,不會因為某台伺服器負載高宕機而某台伺服器閒置的情況。那麼負載均衡的前提就是要有多台伺服器才能實現,也就是兩台以上即可

簡單的來說。可以減少伺服器的壓力,將原本一台伺服器所要承受的訪問量分給了多台,並提高了專案的可用性,當一台伺服器崩掉的時候也不會導致整個專案癱瘓。

1.解決併發壓力,提高應用處理效能(增加吞吐量,加強網路處理能力);

2.提供故障轉移,實現高可用;

3.通過新增或減少伺服器數量,提供**伸縮性(擴充套件性);

我們常用的四種演算法:round-robin輪詢、權重、ip_hash、fair(第三方)、url hash(第三方外掛程式)

1、輪詢(預設)

upstream www
每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。

upstream www用來指定乙個伺服器組,該組的名字是www,包含兩台伺服器。在指定伺服器組裡面包含的伺服器時以形式「server ip/domain:port」的形式指定,其中80埠可以忽略。然後在接收到請求時通過「proxy_pass http://www」把對應的請求**到組www上。nginx預設的負載均衡演算法就是迴圈輪詢,如上配置我們採用的就是迴圈輪詢,其會把接收到的請求迴圈的分發給其包含的(當前可用的)伺服器。使用如上配置時,nginx會把第1個請求給192.168.***.101,把第2個請求給192.168.***.102,第3個請求給192.168.***.103,以此類推。

2、weight

這種方式比較靈活,當後端伺服器效能存在差異的時候,通過配置權重,可以讓伺服器的效能得到充分發揮,有效利用資源。weight和訪問比率成正比,用於後端伺服器效能不均的情況。權重越高,在被訪問的概率越大

upstream www
server 

}

weighted演算法也就是權重演算法,會根據每個服務的權重來分發請求,權重大的請求相對會多分發一點,權重小的會少分發一點。這通常應用於多個伺服器的效能不一致時。需要使用權重演算法時只需要在定義伺服器組時在伺服器

3、ip_hash

配置很簡單,在upstream中採用ip_hash指令,如果客戶已經訪問了某個伺服器,當使用者再次訪問時,會將該請求通過雜湊演算法,自動定位到該伺服器。每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解決session的問題。此種策略,可以實現同乙個使用者訪問同一臺伺服器,會話不會丟失,但是可能會分配不均

upstream www
ip-hash演算法會根據請求的客戶端ip位址來決定當前請求應該交給誰。使用ip-hash演算法時nginx會確保來自同一客戶端的請求都分發到同一伺服器。要使用ip-hash演算法時只需要在定義伺服器組時加上「ip-hash

4、fair(第三方)

這種方式根據後端伺服器的響應時間進行分配,響應快的優先分配請求

5、url hash(第三方外掛程式)

此種方式和ip_hash比較類似,根據url的hash值進行分配,將url分配到同乙個後端伺服器,當伺服器存在快取時比較有效

upstream www

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...