Nginx 配置 負載均衡

2021-07-27 02:54:25 字數 1752 閱讀 2306

介紹

跨多個應用程式例項的負載平衡是用於優化資源利用率,最大化吞吐量,減少延遲並確保容錯配置的常用技術。

有可能使用nginx作為乙個非常有效的http負載均衡器分配流量到幾個應用程式伺服器,並提高web應用程式的效能,可擴充套件性和可靠性與nginx。

負載平衡方法

在nginx中支援以下負載平衡機制(或​​方法):

預設負載平衡配置

使用nginx進行負載平衡的最簡單配置可能如下所示:

} }nginx中的逆向**實現包括http,https,fastcgi,uwsgi,scgi和memcached的負載平衡。

要為https而不是http配置負載平衡,只需使用「https」作為協議。

當設定負載平衡的fastcgi,uwsgi,scgi,或者memcached的使用 fastcgi_pass, uwsgi_pass, scgi_pass和memcached_pa​​ss 分別指令。

最小連線負載平衡

另乙個負載均衡規則是最小連線的。最小連線允許在某些請求需要更長時間完成的情況下更公平地控制應用程式例項上的負載。

使用最小連線的負載平衡,nginx將盡量不要使過多的請求使繁忙的應用程式伺服器過載,而是將新的請求分發給不太忙的伺服器。

當將least_conn偽指令用作伺服器組配置的一部分時,將啟用 nginx中的最小連線負載 均衡:

least_conn;

server srv1.example.com;

server srv2.example.com;

server srv3.example.com;

}}會話永續性

請注意,使用迴圈或最小連線的負載平衡,每個後續客戶端的請求都可能分布到不同的伺服器。不能保證同一客戶端將始終定向到同一伺服器。

如果需要將客戶端繫結到特定的應用程式伺服器 - 換句話說,就總是嘗試選擇特定伺服器而言,使客戶端的會話「粘性」或「持久」 - ip-hash負載均衡機制可以是用過的。

使用ip-hash,客戶端的ip位址用作雜湊金鑰,以確定應為客戶端請求選擇伺服器組中的哪個伺服器。此方法確保來自同一客戶端的請求將始終定向到同一伺服器,除非此伺服器不可用。

要配置ip-hash負載平衡,只需新增 ip_hash 指令到伺服器(上游)組配置:

ip_hash;

server srv1.example.com;

server srv2.example.com;

server srv3.example.com; }}

加權負載平衡

通過使用伺服器權重,還可以進一步影響nginx負載均衡演算法。

在上面的示例中,未配置伺服器權重,這意味著所有指定的伺服器都被視為對特定負載平衡方法同等資格。

特別是對於輪詢,它還意味著跨越伺服器的請求的或多或少的平等分配 - 假如有足夠的請求,並且當請求以統一的方式被處理並且足夠快地完成。

當 為伺服器指定 權重引數時,權重將作為負載平衡決策的一部分。

server srv1.example.com weight = 3;

server srv2.example.com;

server srv3.example.com;

}}使用此配置,每5個新請求將分布在應用程式例項中,如下所示:3個請求將定向到srv1,乙個請求將進入srv2,另乙個請求將進入srv3。

類似地,可以在最近的nginx版本中使用具有最小連線和ip雜湊負載均衡的權重。

nginx負載均衡配置

curl nginx upstream fair.zip unzip nginx upstream fair.zip cd nginx 1.6.2 檢視當前nginx 編譯引數 nginx v 輸出 configure arguments prefix usr local nginx configu...

Nginx負載均衡配置

負載均衡是我們大流量 要做的乙個東西,下面我來給大家介紹在nginx伺服器上進行負載均衡配置方法,希望對有需要的同學有所幫助哦。負載均衡 先來簡單了解一下什麼是負載均衡,單從字面上的意思來理解就可以解釋n臺伺服器平均分擔負載,不會因為某台伺服器負載高宕機而某台伺服器閒置的情況。那麼負載均衡的前提就是...

Nginx負載均衡配置

nginx安裝請參考 nginx原始碼安裝 nginx負載均衡是通過upstream模組來實現的,內建實現了三種負載策略,配置還是比較簡單的。官網負載均衡配置說明 省略其它配置 根據伺服器的響應時間來分配請求,響應時間短的優先分配,即負載壓力小的優先會分配。由於fair模組是第三方提供的,所以在編譯...