Nginx负载均衡之一致性哈希算法
程序员文章站
2024-03-19 22:45:16
...
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; }