最近项目集成调试,有多个系统要部署在同一个Tomcat上,但要求不能使用同一个端口号,这该如何实现呢?
刚好我之前有在《Tomcat权威指南》这本书上有看到这个需求的说明,所以,我就又回头翻了一下那书,把步骤整理了一下,发上来供大家参考 。
本次试验基于以下环境:
本次将基于这份Tomca,为两个应用(demo1 和 demo2)分别创建一个可独立启动的Tomcat实例,称为 instance1 和 instance2。
建立实例目录
# 创建测试目录mkdir -p /home/user1/study/tomcatcd /home/user1/study/tomcat# 创建 instance1 的根目录mkdir instance1# 创建 instance2 的根目录mkdir instance2
创建相关目录
为 instance1 和 instance2 创建以下目录:
# 以 instance1 为例进行说明cd /home/user1/study/tomcat/instance1mkdir confmkdir logsmkdir tempmkdir webappsmkdir work
拷贝配置文件
将服务器上Tomcat目录下的conf目录中的文件拷贝至 instance1 和 instance2 的 conf 目录下
# 以 instance1 为例进行说明cd /opt/apache-tomcat-8.0.30cp bin/* /home/user1/study/tomcat/instance1/conf
文件应该是以下几个:
如果有其他文件夹,比如 Catalina,则可以无视,不需要拷贝过来。
修改端口号
为 instance1 和 instance2 的 conf 目录下的 server.xml 文件修改相关的端口号,具体需要修改的端口号请参见下图(port.png):
我将 instance1 和 instance2 的端口号分别改为了:
作成启动和停止脚本
为了方便启动和停止实例,下面分别作成 启动 和 停止脚本。(以 instance1 为例进行说明)
cd /home/user1/study/tomcat/instance1# 创建 bin 目录用于存放 脚本mkdir bin# 创建 启动 脚本(内容在下面给出)vim start.sh# 创建 停止 脚本(内容在下面给出)vim stop.sh
#!/bin/shexport CATALINA_HOME='/opt/apache-tomcat-8.0.30'export CATALINA_BASE='/home/user1/study/tomcat/instance1'${CATALINA_HOME}/bin/startup.sh
#!/bin/shexport CATALINA_HOME='/opt/apache-tomcat-8.0.30'export CATALINA_BASE='/home/user1/study/tomcat/instance1'${CATALINA_HOME}/bin/shutdown.sh
其中:
部署应用
将 demo1 和 demo2 的 war 包分别放至 instance1 和 instance2 的 webapps目录下,然后执行 bin 目录下的 start.sh 脚本
访问应用
在浏览器分别打开以下两个链接:
停止应用
分别执行 instance1 和 instance2 的 bin 目录下的 stop.sh 脚本即可。
联系客服