资料很多,这里只总结下
ip_hash算法,在增加和服务器宕机时会导致会话和缓存丢失
一致性hash算法则最大程度的减小影响
配置一致性hash策略
nginx的负载均衡策略中不包含一致性hash,所以我们需要安装ngx_http_upstream_consistent_hash模块到我们的nginx中
可以到nginx的src/http/modules下查看已经安装的模块,比如ip_hash策略
ngx_http_upstream_consistent_hash 模块是⼀个负载均衡器,使⽤⼀个内部⼀致性hash算法来选择合适的后端节点。该模块可以根据配置参数采取不同的⽅式将请求均匀映射到后端机器,
consistent_hash $remote_addr:可以根据客户端ip映射
consistent_hash $request_uri:根据客户端请求的uri映射
consistent_hash $args:根据客户端携带的参数进⾏映
安装步骤:
1)github下载nginx⼀致性hash负载均衡模块 https://github.com/replay/ngx_http_consistent_hash 或者 https://www.nginx.com/resources/wiki/modules/consistent_hash/
2)将下载的压缩包上传到nginx服务器,并解压
3)我们已经编译安装过nginx,此时进⼊当时nginx的安装目录⽬录,执⾏如下命令,等号后边为下载的插件的解压目录
./configure —add-module=/root/ngx_http_consistent_hash-master
4)make
make install
5)在nginx.conf⽂件中配置