最近在研究nginx+tomcat的负载均衡功能, 因为需要实现failover时用户无感知的效果,所以我考虑使用tomcat的session同步方式来实现。网上能查到的东西我就直接贴链接了,我把搭建这套系统的过程,与遇到的坑的处理方式说明一下。
我使用的系统环境
Centos6.5 和 Centos7.2
Tomat7.0.29
JDK1.8.0_111-b14
Redis 3.2.6
一. 实现nginx+tomcat的负载均衡
用nginx+tomcat实现负载均衡的方法,只需要在nginx的配置文件中配置相应的upstream设置需要负载均衡的服务器列表就可以了。
稍微说一下可能会坑的地方
在http节点下,添加upstream节点。
upstream linuxidc {
server 10.0.6.108:7080;
server 10.0.0.85:8980; }将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,即“ http://linuxidc”.
location / {
root html;
index index.html index.htm;
proxy_pass http://linuxidc; }
注意一下upstream的名称和在proxy_pass里引用的方法
这一步做完以后,可以试验一下在两台机器上部署同样的项目,通过nginx的负载均衡的机制,刷新页面可以看到被指向到了不同的服务器上。
测试failover的话,在nginx的upstream里
upstream backend {
server 192.168.198.128:8080 weight=1;
server 192.168.198.128:8090 weight=4;
server 192.168.198.128:8091 backup;