一个服务器多个Tomcat问题
来源:互联网 发布:unity3d是微软的吗 编辑:程序博客网 时间:2024/06/05 16:14
一.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参数
linuxJAVA_OPTS=’-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname‘winset 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文件,修改地方有三处 如图
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8082" protocol="AJP/1.3" redirectPort="8443" />
- 一个服务器多个Tomcat问题
- 一个服务器部署多个tomcat出现端口占用问题
- 一个服务器中配置多个tomcat
- 一个服务器中配置多个tomcat
- 一个服务器中配置多个tomcat
- 一个服务器上配置多个tomcat
- 一个服务器上面部署多个tomcat
- tomcat一个服务器部署多个项目
- 一个服务器中配置多个tomcat
- 一个tomcat多个实例问题
- 一个tomcat下部署多个项目或一个服务器部署多个tomcat
- 一个tomcat下部署多个项目或一个服务器部署多个tomcat
- 关于同一服务器配置多个tomcat的问题
- 同一台服务器,一个tomcat文件,多个tomcat实例(install到windows服务)
- 一个服务器上运行多个tomcat,显示总启动某一个特定tomcat
- 启动多个Tomcat服务器
- 启动多个tomcat 服务器
- 配置多个tomcat服务器
- Android编译系统详解(三)
- JAVA中的抽象类和接口的区别
- iOS开发 - Xcode7下解决使用三方库出现的warning问题
- 第一章:熟悉OC
- swift 结构体
- 一个服务器多个Tomcat问题
- Java中String.intern()方法详解
- java中 List 与Set 的区别
- RHEL
- 深度学习算法原理——神经网络
- SQL SERVER中强制类型转换cast和convert
- swift 属性值监测
- Qt中的QString和QByteArray
- jQuery事件