有时候我们监控主机数量比较多,想使用nginx对wgcloud的server做一些水平扩展,也就是负载均衡
比如server分别部署在三台服务器上,它们的IP分别是172.17.18.29,172.17.18.28,172.17.18.27,注意这三台主机系统时间要一致
nginx部署在172.17.18.30
我们在配置文件中(server/config/application.yml)配置每个server的节点类型,注意在一个server集群中,包括一个master节点和N个slave节点
172.17.18.29 配置如下
#节点类型,master或slave,一个集群只能有一个master和N(最多31)个slave,如:slave1,slave2
nodeType: master
172.17.18.28 配置如下(slave后加一个数字编号)
#节点类型,master或slave,一个集群只能有一个master和N(最多31)个slave,如:slave1,slave2
nodeType: slave1
172.17.18.27 配置如下
#节点类型,master或slave,一个集群只能有一个master和N(最多31)个slave,如:slave1,slave2
nodeType: slave2
以上配置完成后,需要重启server生效
接下来看我们的nginx负载均衡配置
因为master节点任务多(需要主动监测数据库,服务接口,ping,SNMP等资源),所以我把它权重设置低一点,设置为5,slave节点设置为10
172.17.18.30的nginx配置如下
upstream wgcloudServer {
server 172.17.18.27:9999 weight=10;
server 172.17.18.28:9999 weight=10;
server 172.17.18.29:9999 weight=5;
ip_hash;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://wgcloudServer;
#root html;
#index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
如上就配置完成了nginx,我们重新加载下nginx
/usr/sbin/nginx -s reload
如上完成后,我们的agent和页面访问都通过如下url来访问