NGINX UPSTREAM和負載均衡策略

2021-10-12 16:18:57 字數 1575 閱讀 2931

注:提供基礎講解示例,生產環境請根據自身情況並參照nginx官方配置

#upstream 後面跟服務名

# server 後面跟網域名稱、埠、權重等配置,可以看到他既支援http協議也支援socket協議的型別,backup意味著該網域名稱是備用的位址

upstream service
在upstream模組配置完成後,要讓指定的訪問反向**到伺服器列表:

backup:backup不參與服務,當其他節點無法服務了,他就參與服務。

max_fails:**伺服器向後端請求,一旦發現請求狀態失敗,會去再度請求。超過max_fails規定的次數,隨即宣告失敗。

fail_timeout:超過max_fails規定的次數,接下來就會「等待一會兒」,通常為10s ,可以通過fail_timeout設定更長的時間。

max_conns 由於nginx向upstram(伺服器池)採用輪詢的方式,分發請求,有的時候我們會遇到連線池中的伺服器硬體效能高低不一,有的是4核,有的是24核,配置低的伺服器可能根本接收不了分攤給他的請求數目,這個時候就用到了max_conns配置。

負載均衡策略 輪詢

預設方式

weight

權重方式

ip_hash

依據ip分配方式

least_conn

最少連線方式

fair(第三方)

響應時間方式

url_hash(第三方)

依據url分配方式

nginx的負載均衡常見有上表6種,預設採用的就是逐一輪詢的方式。

upstream service
加權輪詢的排程演算法:weight引數用於指定輪詢機率,weight的預設值為1;weight的數值與訪問比率成正比,如下配置8081服務被訪問的機率為其他伺服器的兩倍。

upstream service
輪詢帶來的問題是:如果很多操作或訪問是基於cookie或者session的,輪詢會打到不同的伺服器上去,session和cookie也就無從保持,導致了掉線。

指定負載均衡器按照基於客戶端ip的分配方式,這個方法確保了相同的客戶端的請求一直傳送到相同的伺服器,以保證session會話。這樣每個訪客都固定訪問乙個後端伺服器,可以解決session不能跨伺服器的問題。

upstream service
把請求**給連線數較少的後端伺服器。輪詢演算法是把請求平均的**給各個後端,使它們的負載大致相同;但是,有些請求占用的時間很長,會導致其所在的後端負載較高。這種情況下,least_conn這種方式就可以達到更好的負載均衡效果。

upstream service
upstream service
upstream service

nginx upstream 配置小記

這次是簡單地動手驗證一下upstream將請求 到upstream server的配置。nginx config upstream backend 因為只用一台機器來做測試,所以都是本機的位址了,只不過接收客戶端請求的是nginx 9090埠,最終處理請求的是tomcat 8080埠。然後,新建了乙...

nginx upstream 負載均衡

1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。the default server upstream 192.168.93.128 server 2 ip hash 每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解...

nginx upstream分配方式

一 分配方式 nginx的upstream支援5種分配方式,下面將會詳細介紹,其中,前三種為nginx原生支援的分配方式,後兩種為第三方支援的分配方式 1 輪詢 輪詢是upstream的預設分配方式,即每個請求按照時間順序輪流分配到不同的後端伺服器,如果某個後端伺服器down掉後,能自動剔除。ups...