nginx+tomcat集群+redis(memcache)session共享!

本文介绍如何通过Nginx代理及Redis存储来实现跨服务器的Session共享方案。具体包括配置Nginx进行负载均衡,设置Tomcat集群中的Session管理器连接Redis,并验证Session的保持效果。

常用保持session的方式:

1、一些代理(比如nginxIP_hash)

1、使用数据库来存储Session

2、使用Cookie来存储Session                      

3、使用Redis来存储Sesssion(memcache也可以)

……

 

环境:

192.168.1.220   nginx    centos6.6   端口:80

版本:1.9.2

192.168.1.224   tomcatA  centos6.6   端口:8080

192.168.1.225  tomcatB   centos6.6   端口:8090

版本:Jdk:1.7.0_75   Tomcat:7.0.54

192.168.1.223  redis    3.0.5         端口:6379


配置session保持并测试:

nginx.conf配置:
upstream www.tomcatcluster.com {
 zone myapp1 64k;
 server 192.168.1.224:8080 weight=1 max_fails=2fail_timeout=30s;
 server 192.168.1.218:8090 weight=1 max_fails=2fail_timeout=30s;
}
server {
       listen 80 default;
       server_name  www.tomcat.com;
 
       location / {
    proxy_pass http://www.tomcatcluster.com;
   }
}


TomcatA:TomcatB

会话保持:

编辑tomcat配置文件context.xml(TomcatA和TomcatB均操作)

<Context>
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve"/>
<ManagerclassName="com.orangefunction.tomcat.redissessions.RedisSessionManager"
   host="192.168.1.223"        <!-- Redis地址 -->
   port="6379"                 <!-- Redis端口 -->
   paassword="tomcat"           <!-- Redis密码 -->
   database="0"                <!-- 存储Session的Redis库编号 -->
   maxInactiveInterval="60"    <!-- Session失效的间隔(秒) -->
/>
</Context>
mv commons-pool2-2.2.jar  jedis-2.7.2.jar  tomcat-redis-session-manage-tomcat7.jar  /usr/local/tomcat-7.0.54/lib/

如何测试session会话保持?

wKioL1fstSuSo7J-AABg--EPx3Y146.png-wh_50

wKiom1fstSvAwmtyAABe9xZuils155.png-wh_50


可以看到虽然Server从TomcatA变为TomcatB,但session的创建时间没有变化,这就完成了session共享。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值