nginx+redis+tomcat,Session共享失败,Keys *显示 为空

康州牧码人 发布于 2015/04/15 12:41
阅读 5K+
收藏 2

我是根据网上的配置做的,然后做了一个小demo,用来显示当前的sessionId,但是发现,每次通过nginx监听的主机和端口访问过去,每一次的sessionId都是改变的,说明,session没有被共享;怀疑过redis没正常运行,我把它服务关掉,tomcat那边就立马报错了,说明是连上了redis的,但是就是没被共享

我的配置文件是:tomcat/conf/context.xml

<Valve  className="com.radiadesign.catalina.session.RedisSessionHandlerValve"/>
<Manager className="com.radiadesign.catalina.session.RedisSessionManager" 
         host="191.0.4.28"
         port="6379" 
         database="0" 
         maxInactiveInterval="3600"   />



tomcat/jar下面添加了:commons-pool-1.6.jar,jedis-2.1.0.jar,tomcat-redis-session-manager-1.2-tomcat-6.jar

Nginx的配置只是实现了负载均衡,好像网上的也没说要nginx配置文件要配置与redis相关的东西...

redis.cof的配置文件

daemonize yes  
pidfile redis.pid  
port 6379  
timeout 300  
loglevel verbose  
logfile redis.log  
databases 16  
save 900 1  
save 300 10  
save 60 10000  
rdbcompression yes  
dbfilename dump.rdb  

slave-serve-stale-data yes  
appendonly no  
appendfsync everysec  
no-appendfsync-on-rewrite no  
#vm-enabled no  
activerehashing yes

各位前辈们,请帮我看看,是不是我配置出了问题....我google很久了,还是没找到原因,拜托各位了!

运行环境:

ngxin服务器,redis:win7 

tomcat服务器:jdk6,tomcat6,win2003

加载中
0
康州牧码人
康州牧码人
都木有人么....是我表述得有问题??
0
Ryan-瑞恩
Ryan-瑞恩
表述没有问题。。。你配置的问题。我成功搭建过!!!不过用的tomcat7
Ryan-瑞恩
Ryan-瑞恩
回复 @youkaohasang : 跨服务器???这个有区别吗?
y
youkaohasang
问下你搭建的是跨服务器session共享不!我tomcat6和7都搭建了发现都不行
Ryan-瑞恩
Ryan-瑞恩
回复 @梦幻de风 : win下测试也通过
Ryan-瑞恩
Ryan-瑞恩
回复 @梦幻de风 : Linux
康州牧码人
康州牧码人
redis是在win环境下吗?
0
愤怒哥
愤怒哥

tomcat下四个包

commons-pool-1.6.jar

commons-pool2-2.3.jar

jedis-2.1.0.jar

tomcat-redis-session-manager-1.2-tomcat-6.jar

少了commons-pool2-2.3.jar

愤怒哥
愤怒哥
我是用的这四个包,没问题啊,还部署了www.wangjb.com
康州牧码人
康州牧码人
还是不行,如果使用的是jedis-2.5.0的话,就需要使用到commons-pool2这个路径下的class文件,2.10版本的,不用这个commons-pool2-2.23,也不会报错
0
t
tropital2000
问题解决了吗?我遇到同样问题了。求解决办法。
康州牧码人
康州牧码人
没有,还是不行,windows下面搭建不成功....
0
t
tropital2000
我试过jdk1.7 + tomcat 7的环境,也是不行。只要一运行web,redis-server.exe进程的内存消耗就狂涨至100%,直接导致timeout。
康州牧码人
康州牧码人
网上有说,windows下的redis可能有Bug,之前还打算在ubuntu玩一下,后来领导没拍板,所以就不了了之了;打算辞职后,自己去玩一下,现在忙交接
0
tcltang
tcltang
用terracotta集群session试试。就不用redis了
0
bboss
bboss
感兴趣可以了解一下bboss会话共享框架,快速实现集群节点间会话共享和跨域跨应用会话共享,实现与具体容器无关(tomcat,weblogic,websphere,jetty等),能够统计在线会话数,还能在统一监控中心管理应用会话(删除会话,查询会话数据等),无需使用session_sticky,参考资料:

bboss会话共享培训文档

bboss session共享架构及特点 

bboss会话共享demo使用指南 
bboss session共享使用方法介绍
0
t
tropital2000
Cent0S6.4下测试可用。
只使用了:commons-pool-1.6.jar、jedis-2.1.0.jar、tomcat-redis-session-manager-1.2-tomcat-6.jar这三个包。jdk是1.6的,apache-tomcat-6.0.33.tar.gz。
在浏览器下,需要往session里设置一次key值才能由redis共享session。
0
Rlserim
Rlserim
你Redis和tomcat不在一个服务器?
Rlserim
Rlserim
回复 @梦幻de风 : 1,用tomcat的session复制,效率低.2,保存一个key到cookie,数据放到redis,用key去取
康州牧码人
康州牧码人
@Rlserim 对,多个tomcat共享session,一个tomcat死掉了,集群中的另外一个tomcat能无缝的把操作都连接起来!
Rlserim
Rlserim
回复 @梦幻de风 : 你是想多个tomcat之间session共享还是什么?
康州牧码人
康州牧码人
对,不在
0
hanfeng
hanfeng
我在window10 64位 搭建成功得 可以看我的博客
返回顶部
顶部