环境准备:实验环境有限,都安装在一台机器上了

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配置:

nginx+tomcat+redis完成session共享_第1张图片

下载tomcat-redis-session-manager相应的jar包,主要有四个:

nginx+tomcat+redis完成session共享_第2张图片

修改两个tomcat的conf/context.xml:


-
-     
-     WEB-INF/web.xml
-
-     
-     
-
-     
-     
-   
-   
-   


在tomcat/webapps/test放一个index.jsp(index.jsp 做测试使用)

- <%@ page language="java" %>
- 
-   TomcatA
-   
-
-     
-       
-         Session ID
-         <%= session.getId() %>
-       
-       
-         Created on
-         <%= session.getCreationTime() %>
-      
-     
-   
- 
- sessionID:<%=session.getId()%>
- 
- SessionIP:<%=request.getServerName()%> - 
- 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/

nginx+tomcat+redis完成session共享_第3张图片

刷新:

nginx+tomcat+redis完成session共享_第4张图片

可以看到虽然Server从1111变为2222,但session的创建时间没有变化,这就完成了session共享。


最后感谢原作者,原文链接:http://blog.csdn.net/grhlove123/article/details/48047735