请教关于 Apache+Tomcat群集Session共享问题

问题描述

我在做apache+tomcat集群session共享实验,配置如下:tomcat分别安装在两台服务器,IP地址分别是:172.16.19.63172.16.19.64apache在另外一台服务器,IP地址是:172.16.19.65apache服务器配置:修改apache服务器的配置文件httpd.conf找到以下内容并去掉注释LoadModuleproxy_modulemodules/mod_proxy.soLoadModuleproxy_ajp_modulemodules/mod_proxy_ajp.soLoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.soLoadModuleproxy_connect_modulemodules/mod_proxy_connect.soLoadModuleproxy_http_modulemodules/mod_proxy_http.soLoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so再找到<IfModuledir_module></IfModule>加上index.jsp修改成:<IfModuledir_module>DirectoryIndexindex.htmlindex.jsp</IfModule>在配置文件的末尾加上以下内容:<VirtualHost*:80>ServerAdminweijie@126.comServerNamelocalhostServerAliaslocalhost192.168.137.146ProxyPass/balancer://mycluster/stickysession=JESSIONIDnofailover=OffProxyPassReverse/balancer://mycluster/ErrorLog"logs/error.log"CustomLog"logs/access.log"common</VirtualHost>ProxyRequestsOff<proxybalancer://mycluster>BalancerMemberajp://172.16.19.63:8009loadfactor=1route=tomcat1BalancerMemberajp://172.16.19.64:8009loadfactor=1route=tomcat2</proxy>Tomcat服务器配置:分别修改server.xml文件,因为在两台不同服务器上,端口没有修改<Enginename="Catalina"defaultHost="localhost"jvmRoute="tomcat1"><Enginename="Catalina"defaultHost="localhost"jvmRoute="tomcat2">群集代码:<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="8"><ManagerclassName="org.apache.catalina.ha.session.BackupManager"expireSessionsOnShutdown="false"notifyListenersOnReplication="true"/><ChannelclassName="org.apache.catalina.tribes.group.GroupChannel"><MembershipclassName="org.apache.catalina.tribes.membership.McastService"mcastBindAddress="127.0.0.1"address="228.0.0.4"port="45564"frequency="500"dropTime="3000"/><ReceiverclassName="org.apache.catalina.tribes.transport.nio.NioReceiver"address="auto"tcpListenAddress="127.0.0.1"port="4001"autoBind="100"selectorTimeout="5000"maxThreads="6"/><SenderclassName="org.apache.catalina.tribes.transport.ReplicationTransmitter"><TransportclassName="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/></Sender><InterceptorclassName="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/><InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/><InterceptorclassName="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/></Channel><ValveclassName="org.apache.catalina.ha.tcp.ReplicationValve"filter=""/><ValveclassName="org.apache.catalina.ha.session.JvmRouteBinderValve"/><DeployerclassName="org.apache.catalina.ha.deploy.FarmWarDeployer"tempDir="/temp/war-temp/"deployDir="/tmp/war-deploy/"watchDir="/tmp/war-listen/"watchEnabled="false"/><ClusterListenerclassName="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/><ClusterListenerclassName="org.apache.catalina.ha.session.ClusterSessionListener"/></Cluster>在web.xml中加入<distributable/>以实现session的复制现在问题是:apache实现了负载均衡当我停掉一台tomcat服务器时:从登录界面输入用户名能够连接到数据库但是当我把两台tomcat服务器同时开启来的时候,输入用户名密码后,又跳回到登录界面,连不上数据库apache服务器的报错日志:[ThuSep2914:21:592011][error]ajp_check_msg_header()gotbadsignature420[ThuSep2914:21:592011][error]ajp_ilink_receive()receivedbadheader[ThuSep2914:21:592011][error]ajp_read_header:ajp_ilink_receivefailed[ThuSep2914:21:592011][error](120007)APRdoesnotunderstandthiserrorcode:proxy:readresponsefailedfrom172.16.19.63:8009(172.16.19.63)请教各位大虾这个问题怎么解决?万分感谢

时间: 2024-10-04 23:42:43

请教关于 Apache+Tomcat群集Session共享问题的相关文章

Java中tomcat memecached session 共享同步问题的解决办法_java

事件缘由:一个主项目"图说美物",另外一个子功能是品牌商的入驻功能,是跟主项目分开的项目,为了共享登录的用户信息,而实现session共享,俩个tomcat,一个tomcat6,一个tomcat7 web项目windows系统下实现session的共享 第一个步: 在俩个tomcat的context.xml这个文件中配置如下代码: <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManage

Linux 下tomcat的session共享(概要和配置文件)

准备条件: 测试服务器192.168.0.2.192.168.0.3.负载均衡设备或配置好的apache.nginx软件等. 1.修改tomcat的conf/server.xml 在<Engine>节点下增加配置,这里直接贴出server.xml所有配置. <?xml version='1.0' encoding='utf-8'?> <!--   Licensed to the Apache Software Foundation (ASF) under one or mor

tomcat下session共享的问题

问题描述 我们的项目由2个应用(web1,web2)组成,共同放在同一个tomcat下.目前的问题是,项目的登录入口:web1的登录页面.登录成功后,把该用户的登录信息放入web1的session里面,servletRequest.setSession("user",user)之后通过ServletContextContextMybase=servletRequest.getSession().getServletContext();ContextMybase.setAttribute

nginx+tomcat+redis完成session共享

本文记录nginx+redis+tomcat实现session共享的过程 nginx安装:http://blog.csdn.net/grhlove123/article/details/47834673 redis安装:http://blog.csdn.net/grhlove123/article/details/47783471 准备两个tomcat,修改相应的端口   名称 IP 端口 tomcat版本 JDK tomcat1 10.10.49.23 8080 7.0.40 1.7.0_25

Apache+Tomcat负载均衡问题集锦

之前在windows 环境下搭建了下apache+tomcat负载均衡(不会的可以参考之前的文档,文档对于linux和windows都适用),一帆风顺,没有出现任何问题,今天尝试着在linux下搭建了下,其中遇到几个问题,在这里给大家分享下. linux环境,三个redhat6.5 x86_64,其中192.168.1.2安装apache,192.168.1.3和192.168.1.4安装tomcat,这里不再介绍配置,如果有不会的,可以参考前边的文章. 问题一: SESSIONID随着页面刷新

session-用Redis 实现Session共享问题

问题描述 用Redis 实现Session共享问题 不是用的tomcat,如何用Redis去实现Session共享 解决方案 tomcat+redis实现session共享redis上tomcat和session共享的问题redis session共享中的序列化问题 解决方案二: sssion 共享的话一般就是做session 的复制. 当然也有一些负载软件实现负载的时候轮询到一台机器 既然你用到redis了.那么这里用redis存储session. 解决方案三: 参考 tomcat 你嘚部署你

tomcat+apache-两台Tomcat+apache+mod_jk 集群,session共享没问题,控制台报错

问题描述 两台Tomcat+apache+mod_jk 集群,session共享没问题,控制台报错 2015-1-26 9:55:17 org.apache.catalina.ha.tcp.ReplicationValve sendReplicationMessage 严重: Unable to perform replication request. java.lang.NullPointerException at org.apache.catalina.ha.tcp.Replication

Apache + Tomcat 负载均衡 session复制

转自:http://blog.csdn.net/cssmhyl/article/details/8455400 http://snowolf.iteye.com/blog/743611 Apache 和 Tomcat原本就是一家,更是一家亲!Apache与Tomcat整合,无非是将Apache作为前端根据请求路径.端口.代理分发给多个Tomcat,以到达转发和负载均衡的目的!同时,通过Apache和Tomcat相互作用,进行粘性会话,会话拷贝构建集群!这一切的最终结果就是"云服务"!不

session-apache tomcat集群Session 共享后报错!

问题描述 apache tomcat集群Session 共享后报错! 我参考http://www.blogjava.net/killme2008/archive/2007/03/13/103607.html 实现session共享.然后我把我的工程放到tomcat 里面去.启动不报错.点击登录的时候就登录不进去.多次点击登录按钮会进入到主界面然后又强制退出到登录界面.我的tomcat集群版本是Apache 2.2.25Tomcat-7.0.55 点击登录的时候报:严重: Manager [loc