本文记录nginx+redis+tomcat实现session共享的过程
tomcat-redis-session-manager组件:https://github.com/jcoleman/tomcat-redis-session-manager
tomcat-redis-sessoin-manager对tomcat的支持:
(1) tomcat6:支持,要求jdk为1.6, 需要引入tomcat-redis-session-manager-1.2-tomcat-6.jar,不过现在已经处理不维护的状态
(2) tomcat7:支持,jdk可以是1.6或1.7,需要引入tomcat-redis-session-manager-1.2-tomcat-7.jar; 如果引入的是tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar则仅支持JDK1.7
(3) tomcat8:目前不支持, 可以尝试一下https://github.com/chexagon/redis-session-manager(未实际验证)
组件下载:https://github.com/jcoleman/tomcat-redis-session-manager/downloads
使用组件版本
nginx:1.8.0
tomcat两个:6.0.44
redis:2.4.10
JDK:1.6.0_34
(1) 将下面所有依赖的这些jar包放在$TOMCAT_HOME/lib中:
jedis-2.0.0.jar tomcat-redis-session-manager-1.2-tomcat-6.jar commons-pool-1.5.5.jar
(2) 两个tomcat分别配置conf/context.xml,增加:
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" /> <Manager className="com.radiadesign.catalina.session.RedisSessionManager" host="localhost" port="6379" database="0" maxInactiveInterval="60" />
另外,分别配置两个tomcat的HTTP监听端口为6181和6182
(3) nginx配置:
upstream cluster_redis { server localhost:6181; server localhost:6182; } server { listen 6180; server_name localhost; location / { proxy_pass http://cluster_memcached; } }
这里配置nginx监听端口为6180,并请所有的请求反向代理到6181和6182的tomcat集群.
(4) 测试代码session.jsp:
<%@ page import="java.util.Enumeration" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>session test</title> <% String key = request.getParameter("sessionKey"); String value = request.getParameter("sessionValue"); if(key != null && !"".equalsIgnoreCase(key.trim())) { session.setAttribute(key, value); } %> </head> <body> <form action="session.jsp" method="post"> <input type="text" name="sessionKey" value="key1"><input type="text" name="sessionValue" value="value1"> <input type="submit" value="提交"> </form> <h4>已经存储的session--<%=session.getServletContext().getRealPath("/")%></h4> <table> <tr> <th>key</th> <th>value</th> </tr> <% Enumeration<String> keys = session.getAttributeNames(); while(keys.hasMoreElements()){ String k = keys.nextElement(); String v = (String)session.getAttribute(k); %> <tr> <td><%=k%></td> <td><%=v%></td> </tr> <% } %> </table> </body> </html>
需要注意的是,tomcat-redis-session-manager组件并不提供redis集群的支持。对该问题,作者的解释是推荐使用twitter的twemproxy或者碗豆荚的codis之类的redis代理服务。
codis的相关资源:
相关推荐
自己做的一个nginx+tomcat+redis完成session共享小例子,包括所需jar,适合初学者,希望大家一起学习交流
nginx+redis负载均衡、session共享,基于redis+tomcat实现session同步的简单demo
目前只支持tomcat8.5,其它版本的tomcat还没测试,自己配置过很多nginx+tomcat集群+redis实现session共享的系统,经过仔细总结得出这些,可以说是知识的结晶,欢迎大家来下载,不好的地方可以多提,有问题看到的话会...
Nginx+Tomcat+Redis实现应用服务器集群负载均衡和Session共享所需要的所有jar包,包括如下jar包:commons-logging-1.2.jar,commons-pool2-2.6.0.jar,jedis-2.9.0.jar,tomcat-juli-7.0.90.jar,tomcat-redis-...
主要是实现单点登录,session共享,利用redis缓存。使用的技术是nginx+redis。为了避免麻烦,未使用任何框架。
nginx+tomcat+redis服务器集群session共享,本人多次搭建常用的工具,现在拿出来分享。
本实例基于nginx+tomcat+redis的集群实现,实现session的复制。压缩包内含两个tomcat+一个nginx服务器+64位windows版的redis+说明文档,下载即可运行,详细步骤可以参考文档,从此告别集群盲区
超详细Nginx+Tomcat+Redis搭建高性能负载均衡集群Session共享搭建说明,按文档步骤可轻松搭建并实现session共享
Nginx+Tomcat+Redis实现session共享,通过Nginx作为前端的负载,把请求分发到后端的Tomcat服务器上,提高并发数;但是单纯的通过Nginx的ip_hash负载是很多问题的。只要用户一切换网络或者后端Tomcat主机宕机session就...
Nginx+Tomcat+Redis实现应用服务器集群负载均衡和Session共享所需要的所有jar包,包括如下jar包:commons-logging-1.2.jar,commons-pool2-2.4.2.jar,jedis-2.8.2.jar,tomcat-juli.jar,tomcat-redis-session-...
nginx+tomcat+redis集群部署环境,包括nginx tomcat redis及集群部署所需jar包,jedis-2.6.1.jar,commons-pool2-2.2.jar,tomcat-redis-session-manager1.2.jar 具体步骤可以参见我的博文
linux nginx+redis+tomcat分布式负载均衡生产环境部署完成 技术:reids集群 nginx部署 tomcat负载均衡 说明包含: nginx+redis+tomcat分布式负载均衡文档 session共享资料 安装程序 nginx+redis+tomcat分布式...
包含Redis-x64-3.2.100.zip,nginx-1.13.1.zip,我自己搭建的spring+redis 实现session共享的源码
1、集群示例 2、session共享 3、下载启动后nginx、redis、tomcat(2个)即可使用,如果需要学习配置,请自行百度,里面是已经配好状态
男孩的天职nginx+tomcat集群+redis存储session 下载的是一个pdf文件,文件里面有视频演示下载地址,以及jdk1.8 tomcat8 nginx 1.8安装笔记,绝对可以用 nginx反向代理tomcat集群,请求轮训给集群的tomcat,session...
tomcat+redis+nginx实现session共享所需jar包,包含commons-pool2-2.4.2.jar、jedis-2.8.0.jar、tomcat-redis-session-manager-2.0.0.jar
Redis + Tomcat + Nginx 集群实现 Session 共享
nginx-redis-tomcat 集群session共享方案 包括Nginx安装,redis安装,Nginx负载均衡配置,redis+双tomcat集群session共享等方案
有小白看着都可以照做的文档及说明。已经有session的包,所使用的Tomcat版本为 7.0.62 ,比网上其它的说明详细很多。
Nginx+Tomcat8(集群)+Redis实现session共享 老外的github连接: https://github.com/jcoleman/tomcat-redis-session-manager 但是他们给出方案 我们自己修改了 然后编译成jar包给大家用 希望帮到大家 实现redis+...