负载均衡(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负载均衡配置——第三方模块方式