上QQ阅读APP看书,第一时间看更新
1.3.3 Nginx负载均衡器的ip_hash算法
Nginx作为负载均衡机器时,其提供的upstream模块的ip_hash机制能够将某个IP的请求定向到同一台后端服务器上,这样一来这个IP下的某个客户端和某个后端服务器就能建立起稳固的连接了。ip_hash算法可以看成是roundrobin算法的升级版,如果后端有某台Web机器出现故障的话,ip_hash算法会自动降成roundrobin,有兴趣的读者可以自行测试。
ip_hash是在upstream配置中定义的:
upstream backend { ip_hash; server 192.168.1.106:80; server 192.168.1.107:80; }
我们在线上采用了Nginx这种ip_hash算法机制,采用这种机制的网站一直运行稳定,即使是在并发量大的情况下也没有发生过Session丢失的现象,这就证明了这种技术的可靠性,特推荐给大家。
在没有采用Session共享的Memcached/Redis机器的工作场景里,我们可以通过采用此ip_hash算法,让客户始终只访问固定的后端Web机器,从而解决Session共享的问题。