
Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享
推荐使用 ran-jit/tomcat-cluster-redis-session-manager插件,该插件支持 Tomcat 7、8、9 versions。 可能采用 jcoleman/tomcat-redis-session-manager(仅适用于 Tomcat 7,目前无更新维护)。 插件下载地址: 插件文件结构解析
发布日期:2021-05-19 16:45:11
浏览次数:21
分类:精选文章
本文共 2919 字,大约阅读时间需要 9 分钟。
Tomcat 集群环境下的 Redis 会话管理器配置说明
一、 模型说明 Tomcat 集群环境下的会话管理可以通过 Redis Session Manager 插件实现高效的会话存储与共享。这种方案适用于需要高性能与高可用性的 web 应用场景。以下是相关插件及工具链的介绍。
二、 插件选择与准备
- 从 ran-jit 的GitHub仓库获取最新版本:https://github.com/ran-jit/tomcat-cluster-redis-session-manager
- 附件中提供的 2.0.2 版本可从下列链接下载:http://dl.iteye.com/topics/download/d9fffd9d-84dd-385b-b10e-6376eaf0c815
- 对于仅支持 Tomcat 7 的情况,可参考 jcoleman 的 GitHub:https://github.com/jcoleman/tomcat-redis-session-manager
三、 工作原理与配置说明
- 解压后可在 conf 及 ib 目录找到所需文件:
- conf/redis-data-cache.properties: Redis 配置文件,包含redis.hosts、timeout等参数
- ib 目录下包含共需以下四个JAR包:
- commons-logging-1.2.jar
- commons-pool2-2.4.2.jar
- jedis-2.9.0.jar
- tomcat-cluster-redis-session-manager-2.0.1.jar
- 配置步骤说明 步骤 1:将相关JAR包拷贝至 Tomcat的lib目录
- 注意:建议首先配置好一个Tomcat,然后复制完成后重启Tomcat,使其重新识别新库。
- 解压并修改 redis-data-cache.properties,配置 Redis 服务器地址及密码(如需)。
- 将该文件拷贝至 Tomcat 的 conf 目录。
- Nginx 的获取与安装
- 方向:访问 Nginx 官方网站下载最新版本:http://nginx.org/en/download.html
- 64位 Windows 版本可从:http://nginx.org/download/nginx-1.12.2.zip下载
- Nginx 配置说明
- 配置 nginx.conf 文件:
upstream myTomcatCluster { server 127.0.0.1:9300 weight=1 fail_timeout=5s max_fails=1; server 127.0.0.1:9400 weight=1 fail_timeout=5s max_fails=1;}location / { proxy_pass http://myTomcatCluster; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 1; proxy_read_timeout 1; proxy_send_timeout 1;}
- 第一्मच效率优化配置可直接采用简单版本:
location / { proxy_pass http://myTomcatCluster;}
- 启动 Nginx
- 启动命令:start nginx
- 关闭命令:nginx -s stop
- 重新加载命令:nginx -s reload(配置修改后推荐使用)
- 基本操作:将已配置好的一个Tomcat复制并重命名,修改其工作端口(如 9300、9400)。
- 配置注意事项:修改 server.xml 文件中的相关设置,确保 jvmroute 正确配置。
- 创建新项目:新建 index.jsp 文件:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
首页 - Redis Session Tomcat 集群测试
已登录 session ID:<%= session.getId() %> 后缀表示 redirect URL:<%= session.getId() %>.jvm<%= request.getServerPort() %> - 将项目部署至不同 Tomcat 实例下,确保访问时 recognize不同的 session ID 及访问端口号。
- 同一 session ID cross不同的 Tomcat 服务器访问,使用 Nginx 集群均衡分发。
- 测试 яр indulge 模拟场景:
- 关闭其中一个 Tomcat 服务器
- 测试 session ID 是否仍表达
- 确认 session 负载均衡效果
- Redis 集群部署:建议 Redis 进行高可用性配置,以防止服务中断影响 session 共享。
- 测试环境准备:确保 Nginx、Redis、两个 Tomcat 服务器都已运行正常。 -(Argably) 可根据实际需求调整 Redis 连接池配置及 session timeout 访问频率。
步骤 2:设置Tomcat环境变量 在控制板 màu中添加 catalina.base 环境变量,值为 TOMCAT_LOCATION(需在 JDK 环境中 配置)。
步骤 3:配置 Redis 访问凭证
步骤 4:配置 Tomcat 的 contexto.xml 在 conf/context.xml 中添加以下配置:
步骤 5:设置会话超时 如需修改默认 30 分钟的会话超时,在 conf/web.xml 中修改 session-timeout 标签。
四、 Nginx 集群配置
五、 测试与验证 1、 Tomcat 配置
2、 项目部署
3、 测试结果验证
六、 注意事项
以上配置与解析均基于个人实践经验,恳请在使用前进行适当测试与验证。这套方案适用于中小型 web 应用场景,具有较好的扩展性和性能表现。
发表评论
最新留言
很好
[***.229.124.182]2025年04月18日 02时46分33秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
deque stack java_「集合系列」- 初探 java 集合框架图
2023-01-24
eclipse里source的快捷方法_Eclipse快捷键/快捷操作汇总
2023-01-24
excel中最常用的30个函数_Excel玩转数据分析常用的43个函数!
2023-01-24
flink sql设置并行度_Flink 参数配置和常见参数调优
2023-01-24
go 字符串替换_Go 每日一库之 quicktemplate
2023-01-24
hp工作站z8装Linux,惠普Z8G4双路最小工作站
2023-01-24
html上传图片直接保存到数据库中,Editor上传图片路径存入数据库中怎么弄?
2023-01-24
jaccard相似度_自然语言处理之文本相似度计算
2023-01-24
java 字符编码过滤器_java web中字符编码的过滤器(Filter - 1)
2023-01-24
java书籍_还搞不定Java多线程和并发编程面试题?你可能需要这一份书单!
2023-01-24
java开发区块链_用Java代码实现区块链
2023-01-24
Java指定区间返回随机数
2023-01-24
java攀枝花市房屋租售信息管理平台的设计与实现(ssm)
2023-01-24
java教学团队管理系统(ssm)
2023-01-24
java教学网站(ssm)
2023-01-24