nginx+tomcat集群+redis(memcache)session共享!
2023-09-27 14:24:55 时间
常用保持session的方式:
1、一些代理(比如nginxIP_hash)
1、使用数据库来存储Session
2、使用Cookie来存储Session
3、使用Redis来存储Sesssion(memcache也可以)
……
环境:
192.168.1.220 nginx centos6.6 端口:80 版本:1.9.2 192.168.1.224 tomcatA centos6.6 端口:8080 192.168.1.225 tomcatB centos6.6 端口:8090 版本:Jdk:1.7.0_75 Tomcat:7.0.54 192.168.1.223 redis 3.0.5 端口:6379 |
配置session保持并测试:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | nginx.conf配置: upstream www.tomcatcluster.com { zone myapp1 64k; server 192.168.1.224:8080 weight=1 max_fails=2fail_timeout=30s; server 192.168.1.218:8090 weight=1 max_fails=2fail_timeout=30s; } server { listen 80 default; server_name www.tomcat.com; location / { proxy_pass http: //www .tomcatcluster.com; } } |
TomcatA:TomcatB
会话保持:
编辑tomcat配置文件context.xml(TomcatA和TomcatB均操作)
1 2 3 4 5 6 7 8 9 10 11 | <Context> <Valve className= "com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <ManagerclassName= "com.orangefunction.tomcat.redissessions.RedisSessionManager" host= "192.168.1.223" <!-- Redis地址 --> port= "6379" <!-- Redis端口 --> paassword= "tomcat" <!-- Redis密码 --> database= "0" <!-- 存储Session的Redis库编号 --> maxInactiveInterval= "60" <!-- Session失效的间隔(秒) --> /> < /Context > mv commons-pool2-2.2.jar jedis-2.7.2.jar tomcat-redis-session-manage-tomcat7.jar /usr/local/tomcat-7 .0.54 /lib/ |
如何测试session会话保持?
可以看到虽然Server从TomcatA变为TomcatB,但session的创建时间没有变化,这就完成了session共享。
相关文章
- redis中键值对中值的各种类型
- windows环境下启动多个redis服务(搭建redis集群)
- Spring Boot Redis Cluster 实战干货
- Redis的事务处理机制
- 如何用Redis缓存改善数据库查询性能?
- redis的过期时间和过期删除机制
- Redis 安装配置
- 2022-04-07 关于operator-redis的问题的反思引发的自我归一性
- 【玩转Docker容器 2】基于Docker一分钟搭建完 Jdk、Mysql、Nginx、Redis、Tomcat环境
- 【Redis】Redis 数据库操作 ③ ( Redis 键操作 | 连接数据库 | 向数据库中添加值 | 查询所有键 | 查询键存在 | 查询键类型 | 删除键 | 设置键过期时间 )
- 解决Tomcat因Redis加载慢而启动失败的问题
- 手撸Redis分布式锁(8个版本的渐进式源码实践解读)