使用 Nginx+Tomcat 7 +Redis 搭建高性能负载均衡集群服务,共享session

注意:所有使用的架包都已经在这里面了,目标不支持tomcat8经过查询源码,发现tomcat自带架包缺少,tomcat集成redis架包中的类RedisSessionManager有使用到LifecycleSupport类,而LifecycleSupport这个类在tomcat架包中不存在,目前基于tomcat 7来搭建环境。


结构图如下:


下面是使用配置步骤:

第一步:配置Nginx服务器

1、  配置Nginx代理服务器,主要用来解决反向高并发代理问题,我用的版本nginx-1.9.5

先要进入conf文件夹找到nginx.conf,打开配置如下图所示

  1.  upstream localhost {
  2.     #weigth参数表示权值,权值越高被分配到的几率越大
  3.         server localhost:8080 weight=1;
  4.         server localhost:8081 weight=1;
  5.     }

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有没有存入进去


猜你喜欢

转载自blog.csdn.net/qq_32579557/article/details/80165597