nginx+tomcat+redis完成session共享
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx+tomcat+redis完成session共享相关的知识,希望对你有一定的参考价值。
环境准备:实验环境有限,都安装在一台机器上了
tomcat7 两个
nginx1.8
redis3.2.8
准备两个tomcat,修改相应的端口
名称 | IP | 端口 | tomcat版本 | JDK |
tomcat-1 | 192.168.1.133 | 8081 | 7.0.69 | 1.7.0_79 |
tomcat-2 | 192.168.1.133 | 8082 | 7.0.69 | 1.7.0_79 |
nginx.conf配置:
下载tomcat-redis-session-manager相应的jar包,主要有四个:
修改两个tomcat的conf/context.xml:
- <Context> - - <!-- Default set of monitored resources --> - <WatchedResource>WEB-INF/web.xml</WatchedResource> - - <!-- Uncomment this to disable session persistence across Tomcat restarts --> - <!-- - <Manager pathname="" /> - --> - - <!-- Uncomment this to enable Comet connection tacking (provides events - on session expiration as well as webapp lifecycle) --> - <!-- - <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> - --> - <!-- 添加你的redis信息(根据实际配置做相应修改) --> - <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> - <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" - host="localhost" - port="6379" - database="0" - maxInactiveInterval="60" /> - </Context>
在tomcat/webapps/test放一个index.jsp(index.jsp 做测试使用)
- <%@ page language="java" %> - <html> - <head><title>TomcatA</title></head> - <body> - - <table align="centre" border="1"> - <tr> - <td>Session ID</td> - <td><%= session.getId() %></td> - </tr> - <tr> - <td>Created on</td> - <td><%= session.getCreationTime() %></td> - </tr> - </table> - </body> - </html> - sessionID:<%=session.getId()%> - <br> - SessionIP:<%=request.getServerName()%> - <br> - SessionPort:<%=request.getServerPort()%> - <% - //为了区分,第二个可以是222 - out.println("This is Tomcat Server 1111"); - %>
启动tomcat,发现有异常:com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve 类找不到
分别打开三个jar包,确实没有这个类,解决可以参考:
http://blog.csdn.net/qinxcb/article/details/42041023
这里说的就是lib下的包有问题,没下载对,刚刚上面的包已经经过测试了;
通过访问http://192.168.1.133/test/
刷新:
可以看到虽然Server从1111变为2222,但session的创建时间没有变化,这就完成了session共享。
最后感谢原作者,原文链接:http://blog.csdn.net/grhlove123/article/details/48047735
本文出自 “11009859” 博客,请务必保留此出处http://11019859.blog.51cto.com/11009859/1961971
以上是关于nginx+tomcat+redis完成session共享的主要内容,如果未能解决你的问题,请参考以下文章
转载tomcat+nginx+redis实现均衡负载session共享
nginx之 nginx + tomcat + redis 负载均衡且session一致性