一个服务器多个Tomcat问题


一.session丢失问题

一个服务器上搭建了多个tomcat或者weblogic,端口不一样,同时启动访问时session丢失。如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,需要重新登录A才可以访问。经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。
如果IP不同,则不会发生这个问题。IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问A,再访问B的时候,B的sessionid会覆盖A的sessionid。这个事情没办法解决,所以你不要搞两个端口,最好是搞两个IP。原来都是cookie惹的祸,它不会区分端口,造成这多个站点不断的后来的覆盖前面的,从而造成session的丢失

 解决方法:

方法1:将不同的多个应用服务在不同的虚拟主机中,或者映射不同的IP进行部署。

方法2:对应tomcat服务处理方式:修改coocie的名称保证cookie不重复,即jsessionid的不重称,保证ip相同下sessioncookiename域名不同。

 

 1、tomcat5修改方法

在启动项中增加org.apache.catalina.SESSION_COOKIE_NAME参数

 

linux
JAVA_OPTS=’-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname‘

win
set JAVA_OPTS=”-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname“

 

 2、tomcat6和tomcat7修改方法相同

 tomcat增加参数对所有Context生效,影响甚大,所以到以后的版本可以就仅针对Context设置了

在Context容器标签上增加sessionCookieName参数

<Context path=”/” docBase=”webapp” reloadable=”false” 
sessionCookieName=”yoursessionname”></Context>


 

 3、weblogic修改方法

 

设置各个应用使用不同的cookie-name。

         weblogic的设置(设置不同的cookie-name):

         请在WEB-INF\Weblogic.xml添加如下代码

 

 <session-descriptor>       
	<cookie-name>JSESSIONID1</cookie-name>   
</session-descriptor>  

 

二.端口冲突(环境变量雷同)

修改其中一个tomcat中的某些参数,为了避免启动tomcat时出现冲突,编辑bin/startup.bat,

在文件第一行添加如下两行

SET JAVA_HOME=C:\websoft\jdk1.6.0_33 (JDK所在路径)

SET CATALINA_HOME=C:\test\tomcat2(tomcat解压的路径)

 

修改conf/server.xml文件,修改地方有三处 如图

 
    <Server port="8006" shutdown="SHUTDOWN">
 
    <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    <Connector port="8082" protocol="AJP/1.3" redirectPort="8443" />


    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值