nginx+tomcat+redis 做负载均衡时session 共享实现

针对之前的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文件

[html] view plain copy

  1. <?xml version='1.0' encoding='utf-8'?>  
  2. <Context>  
  3.     <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  4.       
  5.     <!-- tomcat-redis-session共享配置 -->  
  6.     <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />  
  7.         <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"  
  8.          host="localhost"   
  9.          port="6379"   
  10.          database="0"   
  11.          maxInactiveInterval="60" />  
  12. <!----------------------------- -->  
  13.   
  14. </Context>  

五、多个tomcat的配置都一致,所以把配置都copy到对应的其他tomcat下;如果在一台机器上进行测试,记得对各个tomcat的端口进行修改;个人的部署环境如下:

六、测试整个环境:(需要提前在tomcat放置一个简单的web项目)

启动redis

启动nginx

启动3个tomcat
访问:http://localhost/ 不停的F5刷新页面 发现页面的sessionid不变;关闭某个tomcat继续F5,sessionid也不变,说明环境搭建成功;

个人资源库中放置需要用到的配置文件以及相关jar包,redis服务器等资源;

猜你喜欢

转载自blog.csdn.net/qq_21860077/article/details/83273718