针对之前的nginx+tomcat的负载均衡机制,因为会出现session丢失的问题,特研究了下redis的session共享;(如果想搭建本环境可从上一篇开始,涉及到nginx的环境搭建http://blog.csdn.net/qq584852076/article/details/46469141)
下载JDK7、tomcat7以备后续测试;
一、下载tomcat-redis-session的源码自行打包:https://github.com/jcoleman/tomcat-redis-session-manager
这里要对tomcat-redis-session打包做一下特殊记录:
由于我们的环境都是基于7系列来运行的,所以必须保持一致;
二、下载redis安装并运行 http://redis.io/download
下载后进入redis-windows-master\src\msopentech\redis-64.2.8.17 目录
在CMD中执行 redis-server.exe redis.windows.conf 如图
三、打包生成tomcat-redis-session.jar包,从网上下载jedis-2.7.2.jar commons-pool2-2.4.1.jar;将这3个包放入tomcat\lib目录下;
四、配置tomcat\conf下的context.xml文件
<?xml version='1.0' encoding='utf-8'?> <Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- tomcat-redis-session共享配置 --> <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="localhost" port="6379" database="0" maxInactiveInterval="60" /> <!----------------------------- --> </Context>
五、多个tomcat的配置都一致,所以把配置都copy到对应的其他tomcat下;如果在一台机器上进行测试,记得对各个tomcat的端口进行修改;个人的部署环境如下:
六、测试整个环境:(需要提前在tomcat放置一个简单的web项目)
启动redis
启动nginx
启动3个tomcat
访问:http://localhost/ 不停的F5刷新页面 发现页面的sessionid不变;关闭某个tomcat继续F5,sessionid也不变,说明环境搭建成功;