一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法
2018-03-16 11:02
801 查看
一个服务器上搭建了多个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>
如果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导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法
- 一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法
- 一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法
- 一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法
- 一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法
- 解决同一IP不同端口或跨域访问站点iframe应用session丢失的问与及ASP.NET 开发相关超时设置
- 解决同一IP不同端口访问的站点iframe应用session丢失的问题
- Websphere集群同一IP不同端口session丢失问题解决
- php中session同ip不同端口的多个网站session冲突的解决办法
- 同一IP不同端口访问的站点iframe应用session丢失怎么办?
- session同ip不同端口的多个网站session冲突的解决办法
- 一台服务器多个WEB应用,SESSION冲突的解决方法
- 因以下文件的损坏或者丢失导致windows无法启动解决方法
- 同一个Tomcat不同Web应用之间共享会话Session
- Websphere应用启动失败,报端口冲突的错误的解决方法
- PHP关于IE下的iframe跨域导致session丢失问题解决方法
- PHP关于IE下的iframe跨域导致session丢失问题解决方法
- 解决tomcat服务器端口占用的方法
- 【同一个Server Weblogic两个Domain CookieName冲突导致session失效问题】【关于WebLogic的Session丢失的问题】
- Apache2服务器因为端口被占用导致无法访问的解决方法