如何在 Linux 服务器上部署多个 Tomcat,以及session很快失效问题

开发管理项目时多多少少会遇到服务器不够用、一个项目分成多个子项目的情况,故研究了一下如何在一台服务器部署多个 Tomcat。

具体操作:

1、在 /tomcat/ 下部署多个 tomcat。

 

2、修改 /etc/profile 文件末尾,加入如下内容:

##########first tomcat###########
CATALINA_BASE=/tomcat/apache-tomcat-9.0.1
CATALINA_HOME=/tomcat/apache-tomcat-9.0.1
TOMCAT_HOME=/tomcat/apache-tomcat-9.0.1
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
##########first tomcat###########

##########second tomcat##########
CATALINA2_BASE=/tomcat/apache-tomcat-9.0.1_2
CATALINA2_HOME=/tomcat/apache-tomcat-9.0.1_2
TOMCAT2_HOME=/tomcat/apache-tomcat-9.0.1_2
export CATALINA2_BASE CATALINA2_HOME TOMCAT2_HOME
##########second tomcat##########

##########third tomcat##########
CATALINA3_BASE=/tomcat/apache-tomcat-9.0.1_3
CATALINA3_HOME=/tomcat/apache-tomcat-9.0.1_3
TOMCAT3_HOME=/tomcat/apache-tomcat-9.0.1_3
export CATALINA3_BASE CATALINA3_HOME TOMCAT3_HOME
##########third tomcat##########

 

  输入命令:source /etc/profile 使其生效。

3、进入第二、第三个 Tomcat 的 bin 目录修改 catalina.sh 文件。

  第一个 Tomcat 无需更改,

  第二个 Tomcat 将 catalina.sh 中的 CATALINA_BASE 和 CATALINA_HOME 批量替换成在 /etc/profile 中配置的第二个 tomcat 对应的信息,

  即将 profile 中的 CATALINA_BASE 替换成 CATALINA2_BASE,CATALINA_HOME 替换成 CATALINA2_HOME;

  vim catalina.sh

  批量替换:

 %s/CATALINA_BASE/CATALINA_2_BASE/g

 %s/CATALINA_HOME/CATALINA_2_HOME/g

  第三个 Tomcat 把 CATALINA_BASE 替换成 CATALINA3_BASE,CATALINA_HOME 替换成 CATALINA3_HOME;

 

4、进入第二、第三个 tomcat 在 conf 下的 server.xml 中修改其的端口号:

  第二个 Tomcat 修改为:

修改关闭端口:<Server port="8006" shutdown="SHUTDOWN" > 
修改访问端口:<Connector port="8088" URIEncoding="UTF-8" redirectPort="8443" connectionTimeout="20000" protocal="HTTP/1.1"> 
修改监听端口:<Connector port="8010" protocol="AJP/1.3" redirectPort="8443">

  第三个 Tomcat 修改为:

修改关闭端口:<Server port="8007" shutdown="SHUTDOWN" > 
修改访问端口:<Connector port="8090" URIEncoding="UTF-8" redirectPort="8443" connectionTimeout="20000" protocal="HTTP/1.1"> 
修改监听端口:<Connector port="8011" protocol="AJP/1.3" redirectPort="8443">

5、最后,依次启动这多个 tomcat,输入命令:ps -ef |grep tomcat 查看进程。

  成功,如下:

=============

如果项目中需要使用session,但会发现session会快速失效,同一个浏览器打开多个项目,session会直接失效。

解决方法:修改服务器中每个Tomcat配置文件,在server.xm文件,加上Context标签,标签内容可以这样写: 

<Context path="/webApp1(访问带项目名:https://.../webApp1)" docBase="/tomcat1/webApp1(项目存放绝对路径)"  reloadable="true" sessionCookiePath="/如需要session共享则放同一目录" sessionCookieName="JSESSIONID_webApp1" /> 
<Context path="/(访问不带项目名,~:8082/api-controller)" docBase="/tomcat2/webApp2"  reloadable="true" sessionCookiePath="/" sessionCookieName="JSESSIONID_webApp2"  /> 
<Context path="/webApp3" docBase="webApp3" reloadable="true" sessionCookiePath="/"  sessionCookieName="JSESSIONID_webApp3"  />

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值