nginx負載均衡設定

2021-08-31 22:37:01 字數 1709 閱讀 3778

nginx 的 upstream目前支援 4 種方式的分配

1)、輪詢(預設)

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

2)、weight

指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。

2)、ip_hash

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解決session的問題。

3)、fair(第三方)

按後端伺服器的響應時間來分配請求,響應時間短的優先分配。

4)、url_hash(第三方)

配置:

在http節點裡新增:

#定義負載均衡裝置的 ip及裝置狀態

upstream myserver

在需要使用負載的server節點下新增

upstream 每個裝置的狀態:

down 表示單前的server暫時不參與負載

weight 預設為1.weight越大,負載的權重就越大。

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

fail_timeout:max_fails 次失敗後,暫停的時間。

backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。

處理session的情況

1)使用memcached或其它方式儲存

2)ip_hash

upstream backend

注意:(1)nginx不是最前端的伺服器。ip_hash要求nginx一定是最前端的伺服器,否則nginx得不到正確ip,就不能根據ip作hash。譬如使用 的是squid為最前端,那麼nginx取ip時只能得到squid的伺服器ip位址,用這個位址來作分流是肯定錯亂的。

(2)nginx的後端還有其它方式的負載均衡。假如nginx後端又有其它負載均衡,將請求又通過另外的方式分流了,那麼某個客戶端的請求肯定不能定位到同一 臺session應用伺服器上。這麼算起來,nginx後端只能直接指向應用伺服器,或者再搭乙個squid,然後指向應用伺服器。最好的辦法是用 location作一次分流,將需要session的部分請求通過ip_hash分流,剩下的走其它後端去。

3) upstream_hash

解決ip_hash的問題,使用,nginx_upstream_jvm_route

nginx設定負載均衡

why負載均衡,隨著企業業務增長和海量請求,給服務端造成海量併發,導致響應不及時需擴容後端服務,前端需要負載均衡,均攤請求,讓服務端吞吐請求的能力提公升 單點服務方式,乙個點掛掉整個服務就掛掉 而多點服務掛掉一兩個,其他的仍可以繼續執行 四層 傳輸層 負載均衡 已經支援到tcp ip協議的維度,tc...

位址設定nginx負載均衡 nginx負載均衡

負載均衡通常用於將工作負載分布到多個伺服器來提高 應用 資料庫或其他服務的效能和可靠性,負載均衡可以提高 的吞吐量,減輕單台伺服器的壓力 使用nginx做負載均衡是常用的方式,nginx有五種負載均衡策略,輪訓策略,指定權重策略,ip繫結策略,fair策略,url hash策略,前面三種是經常用到的...

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

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