7.3.2 Nginx负载均衡器中的ip_hash算法

Nginx作为负载均衡器时,其提供upstream模块的ip_hash机制,能够将某个IP的请求定向到同一台后端服务器上,这样一来这个IP下的某个客户端和某个后端服务器就能建立起稳固的连接了。ip_hash算法可以看成是roundrobin算法的升级版,如果后端有某台Web机器出现故障,则ip_hash算法会自动降成roundrobin,有兴趣的朋友可以自行测试。

ip_hash是在upstream配置中定义的,脚本如下:

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

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共享的问题。