码迷,mamicode.com
首页 > 其他好文 > 详细

使用redis解决tomcat6在nginx负载下多节点共享session问题

时间:2015-12-17 19:18:49      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

使用redis共享tomcat多节点session,需要安装redis、nginx、tomcat6以及用于tomcat存储session到redis的jar包:tomcat-redis-session-manager-1.2-tomcat-6.jar、

commons-pool-1.6.jar、jedis-2.1.0.jar等。这些jar包、配置文件及demo程序可以在最后的demo地址中下载。


下面是对tomcat、nginx进行配置及运行:


1.把demo中的jar包拷贝到tomcat的lib目录中


2.配置tomcat的context.xml文件:

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve"/>; 
<Manager className="com.radiadesign.catalina.session.RedisSessionManager" 
        	 host="localhost" 
        	 port="6379" 
         	database="0" 
        	 maxInactiveInterval="60"/>; 

3.配置tomcat的server.xml:

对于不同的tomcat,以下几个port配置成不同的值如:
tomcat1:
<Server port="8007" shutdown="SHUTDOWN">

<Connector port="18080" protocol="org.apache.coyote.http11.Http11Protocol" 
               connectionTimeout="20000" 
               redirectPort="8444" />
  <Connector port="8019" protocol="AJP/1.3" redirectPort="8444" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
tomcat2:
<Server port="8008" shutdown="SHUTDOWN">

<Connector port="18081" protocol="org.apache.coyote.http11.Http11Protocol" 
               connectionTimeout="20000" 
               redirectPort="8445" />
  <Connector port="8029" protocol="AJP/1.3" redirectPort="8445" />
  
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

4.配置nginx集群:

对nginx.conf进行配置:
	upstream tomcat {
	   server 127.0.0.1:18080;
       server 127.0.0.1:18081;
     }

    server {
            listen       8080;
            server_name  127.0.0.1;   
        location / {
        proxy_redirect          off;    
        proxy_set_header        Host            $host;    
        proxy_set_header        X-Real-IP       $remote_addr;    
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;    
        client_max_body_size    10m;    
        client_body_buffer_size 128k;    
        proxy_buffers           32 4k;  
        proxy_connect_timeout   3;    
        proxy_send_timeout      30;    
        proxy_read_timeout      30;   
         proxy_pass http://tomcat;
            }
            
   }

5.把demo.war程序放入到tomcatde webapps中:

修改demo中的index.jsp中的内容,不同的tomcat中,内容不一样。如下:

tomcat1中的demo:
 tomcat1:<%=session.getId() %>
 tomcat2中的demo:
 tomcat2:<%=session.getId() %>

  6.启动nginx,redis、tomcat1、tomcat2:

打开浏览器,输入地址:http://localhost:8081/demo

7.按F5刷新页面:

我们可以看到页面,不管我们怎么刷新,只有前面的tomcat的标识发生变化,而后面的sessionID是固定的如下:

tomcat1:8EA77B42358EFC1CD1F5FBC7246A1317.tomcat1
 tomcat2:8EA77B42358EFC1CD1F5FBC7246A1317.tomcat1
 如果出现以上的结果说明共享session成功了,如果大家在尝试过程中出现什么问题,可以给我留言。

   8.demo下载地址:

  

使用redis在nginx负载下tomcat6多节点共享session  

使用redis解决tomcat6在nginx负载下多节点共享session问题

标签:

原文地址:http://blog.csdn.net/mr_smile2014/article/details/50342297

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!