zoukankan      html  css  js  c++  java
  • nginx+tomcat+redis完成session共享(转载)

    转载:http://blog.csdn.net/grhlove123/article/details/48047735

    tomcat7下基于redis的session共享所需jar包

    http://download.csdn.net/detail/xiaoxiaosasasa/9403043

    本文记录nginx+Redis+tomcat实现session共享的过程

    nginx安装:http://blog.csdn.net/grhlove123/article/details/47834673

    redis安装:http://blog.csdn.net/grhlove123/article/details/47783471

    准备两个tomcat,修改相应的端口

    名称 IP 端口 tomcat版本 JDK
    tomcat1 10.10.49.23 8080 7.0.40 1.7.0_25
    tomcat2 10.10.49.15 8081 7.0.40 1.7.0_25

    修改nginx.conf加上:

    [html] view plain copy
     
    1. upstream backend {  
    2.     server 10.10.49.23:8080 max_fails=fail_timeout=10s;  
    3.     server 10.10.49.15:8081 max_fails=fail_timeout=10s;  
    4. }  

    修改nginx.conf的location成

    [html] view plain copy
     
    1. location / {  
    2.     root   html;  
    3.     index  index.html index.htm;  
    4.     proxy_pass http://backend;  
    5.  }  


    启动nginx。

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

    wget https://github.com/downloads/jcoleman/tomcat-redis-session-manager/tomcat-redis-session-manager-1.2-tomcat-7-Java-7.jar
    wget http://central.maven.org/maven2/redis/clients/jedis/2.5.2/jedis-2.5.2.jar
    wget http://central.maven.org/maven2/org/apache/commons/commons-pool2/2.0/commons-pool2-2.0.jar

    下载完成后拷贝到$TOMCAT_HOME/lib中

    修改两tomcat的context.xml:

    [html] view plain copy
     
    1. <Context>  
    2.   
    3.     <!-- Default set of monitored resources -->  
    4.     <WatchedResource>WEB-INF/web.xml</WatchedResource>  
    5.   
    6.     <!-- Uncomment this to disable session persistence across Tomcat restarts -->  
    7.     <!-- 
    8.     <Manager pathname="" /> 
    9.     -->  
    10.   
    11.     <!-- Uncomment this to enable Comet connection tacking (provides events  
    12.          on session expiration as well as webapp lifecycle) -->  
    13.     <!-- 
    14.     <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> 
    15.     -->  
    16.   
    17.   <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />  
    18.   <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"  
    19.    host="10.10.49.20"  
    20.    port="6379"  
    21.    database="0"  
    22.    maxInactiveInterval="60" />  
    23. </Context>  


    在tomcat/webapps/test放一个index.jsp

    [html] view plain copy
     
    1. <%@ page language="java" %>  
    2. <html>  
    3.   <head><title>TomcatA</title></head>  
    4.   <body>  
    5.    
    6.     <table align="centre" border="1">  
    7.       <tr>  
    8.         <td>Session ID</td>  
    9.         <td><%= session.getId() %></td>  
    10.       </tr>  
    11.       <tr>  
    12.         <td>Created on</td>  
    13.         <td><%= session.getCreationTime() %></td>  
    14.      </tr>  
    15.     </table>  
    16.   </body>  
    17. </html>  
    18. sessionID:<%=session.getId()%>   
    19. <br>   
    20. SessionIP:<%=request.getServerName()%>   
    21. <br>   
    22. SessionPort:<%=request.getServerPort()%>   
    23. <%   
    24. //为了区分,第二个可以是222  
    25. out.println("This is Tomcat Server 1111");   
    26. %>    

    启动tomcat,发现有异常:com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve 类找不到

    分别打开三个jar包,确实没有这个类,解决可以参考:

    http://blog.csdn.net/qinxcb/article/details/42041023

    通过访问http://10.10.49.20/test/


    刷新:

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

  • 相关阅读:
    同一部电脑配两个git账号
    在span中,让里面的span垂直居中用这个
    三张图搞懂JavaScript的原型对象与原型链
    vue2.0 生命周期
    js中__proto__和prototype的区别和关系?
    【转】css 包含块
    【转】BFC(block formating context)块级格式化上下文
    javascript中函数的5个高级技巧
    toString() 和 valueOf()
    桌面图标列表排列小工具
  • 原文地址:https://www.cnblogs.com/ruiati/p/6406260.html
Copyright © 2011-2022 走看看