nginx負載均衡的方式

2021-10-23 21:51:20 字數 1631 閱讀 7946

一、分配方式

nginx的upstream支援5種分配方式,下面將會詳細介紹,其中,前三種為nginx原生支援的分配方式,後兩種為第三方支援的分配方式:

1、輪詢

輪詢是upstream的預設分配方式,即每個請求按照時間順序輪流分配到不同的後端伺服器,如果某個後端伺服器down掉後,能自動剔除。

upstream backend

2、weight

輪詢的加強版,即可以指定輪詢比率,weight和訪問機率成正比,主要應用於後端伺服器異質的場景下。

upstream backend

3、ip_hash

每個請求按照訪問ip(即nginx的前置伺服器或者客戶端ip)的hash結果分配,這樣每個訪客會固定訪問乙個後端伺服器,可以解決session一致問題。

upstream backend

4、fair

fair顧名思義,公平地按照後端伺服器的響應時間(rt)來分配請求,響應時間短即rt小的後端伺服器優先分配請求。

upstream backend

5、url_hash

與ip_hash類似,但是按照訪問url的hash結果來分配請求,使得每個url定向到同乙個後端伺服器,主要應用於後端伺服器為快取時的場景下。

upstream backend

其中,hash_method為使用的hash演算法,需要注意的是:此時,server語句中不能加weight等引數。

關於,如何在負載均衡中使用upstream請參看這裡。

`二、裝置狀態

從上面例項不難看出upstream中server指令語法如下:

server address [parameters]

關鍵字server必選。

address也必選,可以是主機名、網域名稱、ip或unix socket,也可以指定埠號。

parameters是可選引數,可以是如下引數:

down:表示當前server已停用

backup:表示當前server是備用伺服器,只有其它非backup後端伺服器都掛掉了或者很忙才會分配到請求。

weight:表示當前server負載權重,權重越大被請求機率越大。預設是1.

max_fails和fail_timeout一般會關聯使用,如果某台server在fail_timeout時間內出現了max_fails次連線失敗,那麼nginx會認為其已經掛掉了,從而在fail_timeout時間內不再去請求它,fail_timeout預設是10s,max_fails預設是1,即預設情況是只要發生錯誤就認為伺服器掛掉了,如果將max_fails設定為0,則表示取消這項檢查。

舉例說明如下:

upstream backend

如何引用呢? 如下

location /router/

以下可以解決只有乙個合法的業務網域名稱的問題

location /test/router

如何做遊戲多區多服的https的反向**設定:

location /zone

客戶端請求 :wss:

nginx自動會把引數加arg_字首,**向ttp://$arg_host

:$arg_port,則客戶端自動就連向了

Nginx負載均衡方式

介紹 跨多個應用程式例項的負載平衡是一種常用的技術,用於優化資源利用率,最大化吞吐量,減少延遲並確保容錯配置。可以使用nginx作為非常有效的http負載平衡器,將流量分配給多個應用伺服器,並通過nginx提高web應用程式的效能,可擴充套件性和可靠性。負載平衡方法 在nginx中支援以下負載平衡機...

nginx負載均衡方式

nginx負載均衡 所謂的負載均衡簡單說就是將一台服務原來承受的壓力由多台伺服器來分配,可以在nginx中實現tomcat集群,通過weight來分配權重。nginx的負載均衡演算法 1,輪詢演算法 當不指定weight時,預設就是輪詢演算法,2,權重演算法 指定各自伺服器的weight,指定輪詢機...

Nginx負載均衡的幾種方式

重點說一下ip hash 和加權 nginx為後端web伺服器 apache,nginx,tomcat,weblogic 等做反向 幾台後端web伺服器需要考慮檔案共享,資料庫共享,session共享問題.檔案共享可以使用nfs,共享儲存 fc,ip儲存都行 redhat gfs集群檔案系 統,rs...