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一致性

Nginx+Tomcat+Redis实现负载均衡会话保持

nginx+tomcat7+redis

Tomcat+Redis+Nginx实现session共享(Windows版)

Tomcat +redis +nginx 搭建高性能负载均衡 集群