Tomcat Nginx Redis实现session共享过程图解
一、准备工作
中间件:tomcat、redis、nginx
jar包:commons-pool2-2.4.2.jar、jedis-2.8.0.jar、tomcat-redis-session-manager-2.0.0.jar
二、配置tomcat
多台tomacat需要配置不同的端口号
/lib
将jar包存放到此位置
/conf/server.xml
/conf/context.xml
host为redis的ip地址,port为端口,database为数据库。
nginx
/conf/nginx.conf
upstream意为配置服务器列表,本例中开启了两台tomcat,端口分别为8080与9999。
proxy_pass意为配置代理服务器。
此配置意为监听本地(192.168.0.113)的80端口,并将请求以轮询方式转发给8080和9999的tomcat服务器。
redis
redis不需要特殊配置,启动即可。
三、测试
先后启动redis服务、两台tomcat服务器、nginx服务器。
在tomcat启动页面加上标识,判断两台服务器中sessionid是否一致。
/webapps/root/index.jsp:
四、结果
如果f5刷新页面不能切换端口对应的页面,可能是由于浏览器缓存造成。
解决方法:清除缓存刷新,alt+f5
此时可看到多个tomcat服务在不断轮询,且sessionid一致。
再用redis桌面管理工具查看信息:
可以看到session信息已经交给redis管理。
实现成功 。
五、弊端
此种方式依赖于tomcat容器,如果中间件换成jetty或者其他,就不受用。
还有一种较好实现方式:spring session + redis
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
nginx+redis实现session共享
-
nginx+tomcat实现负载均衡,使用redis session共享
-
Nginx+Tomcat8+Memcached实现负载均衡及session共享
-
nginx+redis+springboot实现session共享的服务集群
-
SpringBoot2.x+Redis+nginx实现session共享和负载均衡
-
tomcat+redis+nginx实现session共享缓存
-
基于Nginx分布式Tomcat+Redis 实现Session共享 for window
-
基于Nginx分布式Tomcat+Redis 实现Session共享 for window
-
Tomcat Nginx Redis实现session共享过程图解
-
通过Nginx搭建Tomcat9集群并实现Session共享