nginx+tomcat+redis完成session共享

本文记录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=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.       
  4.     <WatchedResource>WEB-INF/web.xmlWatchedResource>  
  5.   
  6.       
  7.       
  8.   
  9.       
  10.   
  11.   <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />  
  12.   <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"  
  13.    host="10.10.49.20"  
  14.    port="6379"  
  15.    database="0"  
  16.    maxInactiveInterval="60" />  
  17. Context>  


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

 

 

[html]  view plain  copy
 
  1. <%@ page language="java" %>  
  2. <html>  
  3.   <head><title>TomcatAtitle>head>  
  4.   <body>  
  5.    
  6.     <table align="centre" border="1">  
  7.       <tr>  
  8.         <td>Session IDtd>  
  9.         <td><%= session.getId() %>td>  
  10.       tr>  
  11.       <tr>  
  12.         <td>Created ontd>  
  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共享。

 

文章为转载,原文http://blog.csdn.net/grhlove123/article/details/48047735

你可能感兴趣的:(nginx+tomcat+redis完成session共享)