开发者社区> 问答> 正文

nginx+redis+tomcat,Session共享失败,Keys *显示 为空 : 配置报错 

我是根据网上的配置做的,然后做了一个小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

展开
收起
kun坤 2020-06-04 13:13:44 1129 0
1 条回答
写回答
取消 提交回答
  • 都木有人么....是我表述得有问题??######表述没有问题。。。你配置的问题。我成功搭建过!!!不过用的tomcat7######回复 @youkaohasang : 跨服务器???这个有区别吗?######问下你搭建的是跨服务器session共享不!我tomcat6和7都搭建了发现都不行######回复 @梦幻de风 : win下测试也通过######回复 @梦幻de风 : Linux######redis是在win环境下吗?###### 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,也不会报错######问题解决了吗?我遇到同样问题了。求解决办法。######没有,还是不行,windows下面搭建不成功....######我试过jdk1.7 + tomcat 7的环境,也是不行。只要一运行web,redis-server.exe进程的内存消耗就狂涨至100%,直接导致timeout。######网上有说,windows下的redis可能有Bug,之前还打算在ubuntu玩一下,后来领导没拍板,所以就不了了之了;打算辞职后,自己去玩一下,现在忙交接######用terracotta集群session试试。就不用redis了######感兴趣可以了解一下bboss会话共享框架,快速实现集群节点间会话共享和跨域跨应用会话共享,实现与具体容器无关(tomcat,weblogic,websphere,jetty等),能够统计在线会话数,还能在统一监控中心管理应用会话(删除会话,查询会话数据等),无需使用session_sticky,参考资料:

    bboss会话共享培训文档 bboss session共享架构及特点  bboss会话共享demo使用指南  bboss session共享使用方法介绍######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。

    ######你Redis和tomcat不在一个服务器?######回复 @梦幻de风 : 1,用tomcat的session复制,效率低.2,保存一个key到cookie,数据放到redis,用key去取######@Rlserim 对,多个tomcat共享session,一个tomcat死掉了,集群中的另外一个tomcat能无缝的把操作都连接起来!######回复 @梦幻de风 : 你是想多个tomcat之间session共享还是什么?######对,不在######我在window10 64位 搭建成功得 可以看我的博客

    2020-06-05 13:16:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《Nginx 代理系统常用手册》 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载