负载均衡(load-balance)就是将负载分摊到多个操作单元上执行,从而提高服务的可用性和响应速度,带给用户更好的体验。Nginx不仅可以作为一个Web服务器或反向代理服务器,还可以通过upstream指令实现配置负载均衡服务器组实现多种方式的负载均衡。4种典型方式:轮询方式、权重方式、ip_hash方式、第三方模块方式。
权重方式是利用weight指定的权重比率,与访问率成正比,用于后端服务器性能不均的情况。
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 { #weigrt权重值(越大访问率大),在fail_timeout时间内检查后端服务器max_fails次,失败则被剔除; server 192.168.1.123 weight=1 fail_timeout=30s max_fails=2; server 192.168.1.91 weight=1 fail_timeout=30s max_fails=2; }
在上述配置中,weigth参数表示权值,权值越高则被分配到的概率越大。除此之外,还可以设定每台Web服务器在负载均衡调度中的状态,常用的参数:max_fails允许请求失败的次数默认为l、fail_timeoutq请求失败后暂停服务的时间、backup预留的备份机器、down表示当前的server暂时不参与负载均衡。
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输出以下类似结果说明配置成功:
curl 192.168.1.141 #输出192.168.1.123 curl 192.168.1.141 #输出192.168.1.91 curl 192.168.1.141 #输出192.168.1.91
转载请注明:零五宝典 » Nginx负载均衡配置——权重方式