Nginx负载均衡配置——ip_hash方式

Nginx 5482℃

负载均衡(load-balance)就是将负载分摊到多个操作单元上执行,从而提高服务的可用性和响应速度,带给用户更好的体验。Nginx不仅可以作为一个Web服务器或反向代理服务器,还可以通过upstream指令实现配置负载均衡服务器组实现多种方式的负载均衡。4种典型方式:轮询方式权重方式ip_hash方式第三方模块方式

ip_hash方式是按每个请求访问IP的hash结果分配,可以使每个访客固定访问一个后端服务器,可以解决Session共享的问题。

1.准备服务器

准备3台虚拟机,并全部安装Nginx服务器。可以参考:源码编译安装Nginx,其中IP为192.168.1.141的服务器用作负载均衡服务器,另外两台用作后端Web服务器,IP分别为192.168.1.123和192.168.1.91

2.配置负载均衡服务器nginx.conf

#配置域名为test.com的主机
server {
    listen       80;
    server_name  test.com;
    location / {
        proxy_pass http://web_server;
    }
}
#配置负载均衡服务器组名称和地址
upstream web_server {
    ip_hash;
    server 192.168.1.123;
    server 192.168.1.91;
}

在使用ip_hash方式处理负载均衡时,Web服务器的状态可以使用down(表示当前的server暂时不参与负载均衡),但是不能使用weight(权重)和backup(预留的备份机器)。

3.配置WEB服务器组

在Web服务器192.168.1.123中的网站目录下编写index.html,内容如下:

192.168.1.123

在Web服务器192.168.1.91中的网站目录下编写index.html,内容如下:

192.168.1.91

4.测试验证

重启负载均衡服务器配置后,在其他机器上多次访问192.168.1.141输出的是一个固定IP,说明配置成功:

curl 192.168.1.141
#输出192.168.1.91
……
curl 192.168.1.141
#输出192.168.1.91

由于ip_hash方式为每一个用户IP绑定一个Web服务器处理,可能会导致某些Web服务器接收的请求多,某些Web服务器接到的请求少,无法保证Web服务器的负载均衡。 因此,建议只在必要的情况下使用这种方式。

转载请注明:零五宝典 » Nginx负载均衡配置——ip_hash方式