1、转发功能
按照一定的算法【权重、轮询】,将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量。
2、故障移除
通过心跳检测的方式,判断应用服务器当前是否可以正常工作,如果服务器期宕掉,自动将请求发送到其他应用服务器。
3、恢复添加
如检测到发生故障的应用服务器恢复工作,自动将其添加到处理用户请求队伍中。
请参考https://blog.csdn.net/yabingshi_tech/article/details/47416787
在nginx后端代理10.192.203.111/112的8001端口:
vi /usr/local/nginx/conf/nginx.conf
新增:
upstream webservers {
server 10.192.203.112:8001 weight=1;
server 10.192.203.113:8001 weight=1;
}
注释掉server里location的两行内容,并添加两行内容:
proxy_pass http://webservers;
proxy_set_header X-Real-IP $remote_addr;
注意:proxy_pass http://webservers的webservers需要和upstream 后的内容保持一致。
#重新加载配置文件(可以不用重启nginx):
/usr/local/nginx/sbin/nginx -s reload
通过nginx访问应用。
部署了一个mydemo应用,部署步骤请参考怎样在weblogic集群上部署应用。
部署在10.192.203.112/113上的war包内容不一样(112的war包,113的war包)。
10.192.203.112会输出112,10.192.203.113会输出113。
多次访问http://10.192.203.107/mydemo/进行测试,有时会出现112,有时会出现113,比较均衡。
已测试当停掉其中一台服务器,仍然能通过代理访问,也验证了集群的高可用。
--备注:假如测试发现nginx没实现负载均衡,则需要检查下war包部署的是静态文件还是动态文件(jsp)等。
若是静态文件,可能会因为缓存的原因导致看起来没实现负载均衡。
在两台nginx上安装keepalive,实现高可用。
可参考https://blog.csdn.net/yabingshi_tech/article/details/52038332