Nginx
提供了多種負載均衡算法,
ip_hash
是其中的一種,但是通常情況下不用他而用第三方的算法,為什麼?
因為
ip_hash
在
Nginx
是第一層代理時才有效果,如果在經過
Nginx
前經過了其他代理時,會造成擷取的
ip
不正确。
upstream web_server {
ip_hash;
server 1.1.1.1:8083 weight=5 max_fails=3 fail_timeout=30s;
}
常用的一緻性雜湊演算法:
ngx_http_consistent_hash
- 下載下傳并解壓
unzip ngx_http_consistent_hash-master.zip
- 重新編譯
檔案,并添加此子產品:Nginx
。注意:重新編譯會覆寫原有的./configure --add-module=/ngx_http_consistent_hash-master
,是以在重新編譯前,有必要了解上一次編譯時,安裝了哪些子產品:Nginx
nginx -V
-
make && make install
- 配置新的雜湊演算法
upstream www.a.com { consistent_hash $request_uri; server 1.1.1.1:8083 weight=5 max_fails=3 fail_timeout=30s; }