• 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共享。

  • 相关阅读:
    堆栈的链表方式实现
    堆栈的公式化描述实现
    队列的链表方式实现
    队列的实现:公式化描述
    二叉树实现:公式化描述
    算法学习笔记(四):合并排序
    编译caffe报错:_ZN5boost16exception_detail10bad_alloc_D2Ev
    druid的安装
    Error : Must specify a primary resource (JAR or python or R file)
    zip和zippartition总结
  • 原文地址:https://www.cnblogs.com/ruiati/p/6406260.html
Copyright © 2020-2023  润新知