CentOS+Nginx+Tomcat+Redis实现负载均衡Session共享

1、环境

CentOS6.5

JDK1.7

Tomcat6.0

Nginx1.7.4

Redis3.2.6


Ngin安装及负载均衡请查看:http://blog.csdn.net/llgyzb/article/details/56831031

Redis安装及配置请查看:http://blog.csdn.net/llgyzb/article/details/56851203

2、配置负载均衡

我有两个Tomcat

tomcat1  192.168.0.101:8081

tomcat2 192.168.0.102:8081

先配置负载均衡,请参考http://blog.csdn.net/llgyzb/article/details/56831031

启动Nginx

3、配置tomcat

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

tomcat-redis-session-manager-1.2-tomcat-6-Java-7.jar

(第一个包下载失败的话,也可以在这里下载:http://download.csdn.net/download/u014002509/8678471)
jedis-2.5.2.jar
commons-pool2-2.2.jar

所有Jar文件可从这里下载:http://download.csdn.net/detail/llgyzb/9765586

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

修改两tomcat的context.xml:

  
  
      
    WEB-INF/web.xml  
      
      
  
      
      
  

           
  
上面的192.168.0.101是我Redis所在的服务器IP(切记,要修改redis文件目录下配置文件redis.conf中bin 127.0.0.1 为 bin 192.168.0.101,这样其他服务器上的tomcat才可以连接redis,可参考http://blog.csdn.net/llgyzb/article/details/56851203)。

RedisSessionHandlerValue和RedisSessionManager类的包名要与你拷到Lib下jar包中相应类名对应的包名一致。

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

<%@ page language="java" %>  
  
  TomcatA  
    
   
      
<% session.setAttribute("tomcat.session.id","tomcat.session.id.1"); %>
Session ID <%= session.getId() %>
Created on <%= session.getCreationTime() %>
sessionID:<%=session.getId()%>
SessionIP:<%=request.getServerName()%>
SessionPort:<%=request.getServerPort()%> <% //为了区分,第二个可以是222 out.println("This is Tomcat Server 1111"); %>
 
  

在第二个tomcat的webapps/test/index.jsp添加如下内容

<%@ page language="java" %>  
  
  TomcatB  
    
   
    
Session ID <%= session.getId() %>
Created on <%= session.getCreationTime() %>
sessionID:<%=session.getId()%>  
<% =session.getAttribute("tomcat.session.id") %>

SessionIP:<%=request.getServerName()%>
SessionPort:<%=request.getServerPort()%> <% //为了区分,第二个可以是222 out.println("This is Tomcat Server 222"); %>
 
  

 重启tomcat和nginx,再次访问ngiunx即可看到sessionID不再改变,已经实现共享  
  

 
 

你可能感兴趣的:(CentOS+Nginx+Tomcat+Redis实现负载均衡Session共享)