JAVA—咖啡館

          ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

          本文記錄nginx+redis+tomcat實現session共享的過程

          nginx安裝:http://www.aygfsteel.com/fanyingjie/archive/2016/04/22/430204.html

          redis安裝:http://www.aygfsteel.com/fanyingjie/archive/2016/04/22/430203.html

          準備兩個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=1 fail_timeout=10s;  
          3.     server 10.10.49.15:8081 max_fails=1 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://www.aygfsteel.com/fanyingjie/archive/2016/04/22/430205.html


          通過訪問http://10.10.49.20/test/


          刷新:

          可以看到雖然Server從1111變為2222,但session的創建時間沒有變化,這就完成了session共享。

          posted on 2016-04-22 17:15 rogerfan 閱讀(424) 評論(0)  編輯  收藏 所屬分類: 【開源技術】
          主站蜘蛛池模板: 澄江县| 乐都县| 望都县| 朔州市| 林甸县| 京山县| 伽师县| 依安县| 竹北市| 尤溪县| 惠东县| 北流市| 武冈市| 广东省| 衡山县| 莲花县| 辽阳县| 沭阳县| 山东| 富民县| 灵山县| 漳州市| 肇州县| 阿合奇县| 志丹县| 扶沟县| 沧州市| 石泉县| 宿州市| 江孜县| 广昌县| 伽师县| 饶河县| 宜章县| 精河县| 定兴县| 邯郸市| 长沙市| 昌乐县| 嵊州市| 富裕县|