负载均衡环境:nginx + 2tomcat

部署两个服务

安装两个tomcat,tomcat安装,参考:https://www.cnblogs.com/uncleyong/p/10742650.html

两个tomcat的端口要不一样(shutdown、ajp、http三个端口),其中,tomcat1的http端口是8680,tomcat2的http端口是8681

把test.jsp放到tomcat安装路径下的webapps/ROOT下

tomcat1的test.jsp

tomcat2的test.jsp

启动两个tomcat服务

然后可以通过ps -ef |grep tomcat看服务是否启动起来了

访问tomcat1,192.168.168.200:8680/test.jsp

访问tomcat2,192.168.168.200:8681/test.jsp

上面都可以访问,但是端口不一样。

nginx负载均衡

安装nginx,参考:https://www.cnblogs.com/UncleYong/p/10742883.html

通过nginx(反向代理服务器),可以实现访问一个地址

修改nginx配置文件nginx.conf

添加如下内容

upstream qzcsbj{

  server 192.168.168.200:8680;

  server 192.168.168.200:8681;

}

proxy_pass http://qzcsbj;

重启nginx:./nginx -s reload

nginx负载均衡策略默认是轮询,请求一个地址:192.168.168.200/test.jsp,可以访问不同的服务器,但是sessionID一直在变化

访问到tomcat1

访问到tomcat2

每次sessionID不一样,所以,集群会出现session共享的问题。

解决方案:iphash(修改配置文件,添加如下内容:ip hash;),固定访问服务器,但是如果这台服务器挂了,就会出现请求失败的问题。

比较好的解决方案是:通过redis共享session,参考:https://www.cnblogs.com/UncleYong/p/10986548.html

原文地址:https://www.cnblogs.com/uncleyong/p/10751372.html