linux apache tomcat7集群中session共享失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux apache tomcat7集群中session共享失败相关的知识,希望对你有一定的参考价值。

两种session的处理方式一种是来一个请求交给固定的服务器处理,另一种在所有容器中共享session,第一种可以做到,第二种在Linux上面总是无法实现,但是在win上实现成功。
看了很多问题解答,web.xml已经加了<distributable/> ,组播也执行了route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0,在win下可以看到第二个tomcat启动的时候第一个会侦测到,并在控制台输出:Replication member added:org.apache.catalina.cluster.mcast.McastMember。
但是移植到linux上面之后两个tomcat启动之后无法监听到,控制台没有输出Replication member added:,session也无法复制,不知道有没有人能够帮忙解答一下捏。

你的集群是通过nginx实现的吗?tomcat+nginx集群的话,比较容易实现session会话保持,在nginx的 upstream 配置中添加 IP_HASH就可以实现,不需要再去做session复制和共享。 参考技术A 我也遇到这个问题了,请问你解决了吗? 我包括使用nginx也不能成功复制session追问

看看是不是端口没开

apache+多tomcat集群

  一台服务器安装apache+tomcat   另一台安装tomcat(192.168.1.200)

1 安装软件 安装基本配置apache+tomcat见上一篇

2 配置两台服务器的tomcat , 配置tomcat/conf/server.xml

   1 找到 <Engine name="Catalina" defaultHost="localhost" >  

     添加改为  <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

            jvmRoute="tomcat1" 为tomcat标记

   2 找到   <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

     将前后的注释符去掉

   3 实现session 共享可用于标记用户实现一定的用户数据共享(购物车?)

        配置tomcat/conf/context.xml

            <Context>

                    .....

            </Context>

        改为

            <Context distributable="true">

                     .....

            </Context>

     注意两台都要配置

3 配置apache服务器

    1 将mod_jk.so 复制到apache\modules里面

    2 配置apache\conf/httpd.conf

       在LoadModul下 复制

            LoadModule jk_module modules\mod_jk.so 

            JkWorkersFile "C:\apache\conf\workers.properties" (注意自己的安装路径,此文件需新建)

            JkLogFile C:\apache\logs\mod_jk.log    (需新建)

            JkLogLevel debug

            JkMount  /*.do loadbalancer

            JkMount  /*.jsp loadbalancer

    3 新建 文件workers.properties 在C:\apache\conf\

            添加        

            worker.list=loadbalancer


            worker.tomcat1.port=8009   #ajp的监听端口

            worker.tomcat1.host=127.0.0.1 #(这是本机的tomcat)

            worker.tomcat1.type=ajp13

            worker.tomcat1.lbfactor=1


            

            worker.tomcat2.port=8009   #ajp的监听端口

            worker.tomcat2.host=192.168.1.200 #另一台tomcat

            worker.tomcat2.type=ajp13

            worker.tomcat2.lbfactor=1

            

            (多个tomcat)


            worker.loadbalancer.balance_workers=tomcat1,tomcat2 (若添加tomcat,此处添加)

            worker.loadbalancer.sticky_session=1

 完成 



  


    

本文出自 “ITcain” 博客,请务必保留此出处http://521kun.blog.51cto.com/9397206/1782096

以上是关于linux apache tomcat7集群中session共享失败的主要内容,如果未能解决你的问题,请参考以下文章

apache2.2.25+tomcat7.0.47集群方案

apache2.4 + mod_proxy + tomcat7 配置集群和负载均衡

apache2.4 + mod_proxy + tomcat7 配置集群和负载均衡

linux 源码安装tomcat7

Linux下安装Tomcat7

Linux安装配置Tomcat7