说明: Tomcat作为Web容器,其并发能力在500左右,因此tomcat项目下的静态资源文件应该考虑放到Nginx或者其他静态资源文件管理器中更加合适。在负载均衡策略当中,应该考虑对开发人员透明的运维方案(通过Nginx转发重定向,这也是Nginx相对于LVS的优势所在,并且可以在后续的负载均衡策略中优化为LVS+Nginx的架构)。
准备工作
- 所有的Tomcat对应的webapp发布时,在web.xml文件中加入
- 准备两台服务器(虚拟机)
1 | 192.168.133.132(Nginx加2*Tomcat) |
- 确定nginx和两台tomcat可以互访,并且两个tomcat机器在一个网段内;
- 确定两台tomcat多播已经打开,在Linux机器上可以使用cat /proc/net/dev_mcast检查,如果文件存在基本上就是打开了;
- 确定两台tomcat机器的/etc/hosts文件中包含“xxx.xxx.xxx.xxx hostname”比如“192.168.133.132 tomcat1”
tomcat安装与配置
jdk与tomcat的安装过程略过(加入一个其他的参考文献链接)
选择一个Web实验项目
使用$TOMCAT_HOME/webapps/examples/作为实验项目
修改项目路径下的 WEB-INF/web.xml
1 | 在<display-name>Servlet and JSP Examples</display-name>后添加 |
增加home.jsp
1 | <html> |
测试尚未配置复杂均衡时的效果
分别访问:
http://192.168.133.132:8080/examples/
http://192.168.133.134:8080/examples/
不难看出,两者的Session ID并不相同,说明此时的tomcat还未支持共享session;
配置tomcat进行session共享
修改$TOMCAT_HOME/conf/server.xml修改Cluster节点配置。
最简单的配置为
1 | <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> |
但是为了避免Session风暴,过多的无意义Session共享, 我们采用如下配置:具体的配置请参考Tomcat官方文档。
1 | <!--开始Tomcat集群配置--> |
配置nginx负载均衡
1 | http{ |
配置完成之后重启nginx服务器
集群测试
多次访问http://192.168.133.132/examples/,效果如下:
可以看出访问的是不同的tomcat服务器,但是SessionID是一样的,并且一开始用户访问的是tomcat2
版权声明
本文标题:13-ngix负载均衡系列1-tomcat共享session
文章作者:盛领
发布时间:2015年01月16日 - 18:09:23
原始链接:http://blog.xiaoyuyu.net/post/7c3073a7.html
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。
如您有任何商业合作或者授权方面的协商,请给我留言:sunsetxiao@126.com

欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!