Nginx负载均衡配置——第三方模块方式

Nginx 2457℃

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

第三方模块方式,Nginx本身不包含第三方模块的实现方式,需另外下载。常见的有fair(按照每台服务器的响应时间来分配请求,响应时间短的优先分配)和url_hash(按照访问url的hash值来分配请求),本文以fair为例。

1.准备服务器

准备3台虚拟机。其中两台用作后端Web服务器,IP分别为192.168.1.123和192.168.1.91,采用默认编译安装Nginx服务器即可。另外IP为192.168.1.141的服务器用作负载均衡服务器需要添加fair模块。下载nginxupstream-fair-master.zip到root目录下并解压,然后编译nginx时候加上add-module选项,以下只列出关键步骤,其他安装步骤参考:源码编译安装Nginx

unzip nginx-upstream-fair-master.zip
./configure --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/root/nginx-upstream-fair-master

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

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

3.测试验证

为了验证fair模块是否能够根据后端服务器的响应时间负载均衡,可以通过PHP延长服务器的响应时间。在Web服务器192.168.1.123中配置PHP后,编写index.php文件,内容如下:

<? php sleep (10); ?>
192.168.1.123

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

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

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