Tomcat8下的Redis会话共享
前言:
最近在做网站的升级,从Tomcat7升级到Tomcat8版本,因为没接触过,就以为升级下Tomcat的版本就万事大吉,可是天不如人愿,很顺利的将应用升级到了Tomcat8。
看着没有问题,但是测试下业务,居然不能够登录(白屏)。WTF?
先说下网站是有三个Tomcat进行负载的,如果只是启动一台,然后通过域名进行访问,是完全没有问题的,如果再启动一台Tomcat,那么现在就会有问题(白屏)了。
遂:肯定还落了什么东西没有配置,终于在费了九牛二虎之力,于旧的tomcat//conf/context.xml中找到了如下的配置:
现在就有了一些思路,三台服务器有负载的情况,那么肯定是会共享session的,指定是这个问题,于是一顿噼里啪啦的百度,就有了现在这篇博客
环境:
JDK7
Tomcat8应用服务器-三台
Redis服务器-一台
步骤:
开源项目地址:https://github.com/ran-jit/tomcat-cluster-redis-session-manager
1、下载所需资源
下载完毕如下图所示:
2、上传jar包
上传上面的四个jar包到新tomcat的lib目录下
3、编写redis的配置文件
1、编辑RedisDataCache.properties这个文件,上面写上你的redis相关配置
2、将配置文件上传到新Tomcat的conf目录下
4、编辑conf/context.xml配置文件
<Valve className="com.r.tomcat.session.management.RequestSessionHandlerValve"> <Manager className="com.r.tomcat.session.management.RequestSessionManager">
5、设置session过期时间(可选)
在/tomcat/conf/web.xml中编辑下面这段配置即可,默认已经配置了,单位是min
<session-config> <session-timeout>30</session-timeout> </session-config>