nginx_tomcat_redis搭建负载均衡共享session
注意:所有使用的架包都已经在这里面了,目标不支持tomcat8经过查询源码,发现tomcat自带架包缺少,tomcat集成redis架包中的类RedisSessionManager有使用到LifecycleSupport类,而LifecycleSupport这个类在tomcat架包中不存在,目前基于tomcat 7来搭建环境。
结构图如下:
下面是使用配置步骤:
第一步:配置Nginx服务器
1、 配置Nginx代理服务器,主要用来解决反向高并发代理问题,我用的版本nginx-1.9.5
先要进入conf文件夹找到nginx.conf,打开配置如下图所示
- upstream localhost {
- #weigth参数表示权值,权值越高被分配到的几率越大
- server localhost:8080 weight=1;
- server localhost:8081 weight=1;
- }
2、 启动Nginx服务器、可以直接点击nginx.exe文件也可以通过cmd命令进入到目录下通过命令行来启动
第二步:配置tomcat
1、 在conf目录下,找到server.xml文件,配置端口号,因为要多个tomcat所以复制两份tomcat就可以啦,只是访问的端口号不同,先配置两个端口号8080、8081
注意的是要修改其中一个端口,防止在启动的时候发生端口冲突
2、 配置context.xml,需要加上这行配置,主要用来tomcat和redis第三方架包共享session存储,因为经常会遇到session丢失问题,所以通过redis来存储
这里就要注意了,因为网上很多架包都有问题的,要看清楚自己的tomcat版本
前面的host是redis数据库部署的服务器ip地址,port是端口号,database是哪个数据库,maxInactiveInterval是最大空闲时间
第三步:配置redis数据库
1、 配置redis数据库,redis-2.4.5-win32-win64这个版本直接可以使用启动里面的服务即可redis-server.exe
2、 通过客户端插件链接redis可以看到
第四步:测试、在tomcat/webapp/root目录下放入一个jsp页面进行测试下
发现sessionid已经是相同的了说明已经共享了,再去redis数据库看看sessionid有没有存入进去