服务器上只安装一份Tomcat,如何部署多个应用,要求每个应用使用不同的端口

来源:互联网 发布:数据加密标准des 编辑:程序博客网 时间:2024/04/30 12:49

最近项目集成调试,有多个系统要部署在同一个Tomcat上,但要求不能使用同一个端口号,这该如何实现呢?
刚好我之前有在《Tomcat权威指南》这本书上有看到这个需求的说明,所以,我就又回头翻了一下那书,把步骤整理了一下,发上来供大家参考 。

本次试验基于以下环境:

  • 操作系统: CentOS7
  • Tomcat版本:8.0.30
  • Tomcat安装路径:/opt/apache-tomcat-8.0.30

本次将基于这份Tomca,为两个应用(demo1demo2)分别创建一个可独立启动的Tomcat实例,称为 instance1instance2

建立实例目录

# 创建测试目录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.policy
  • catalina.properties
  • context.xml
  • logging.properties
  • server.xml
  • tomcat-users.xml
  • web.xml

如果有其他文件夹,比如 Catalina,则可以无视,不需要拷贝过来。

修改端口号

为 instance1 和 instance2 的 conf 目录下的 server.xml 文件修改相关的端口号,具体需要修改的端口号请参见下图(port.png):
修改端口号

我将 instance1 和 instance2 的端口号分别改为了:

  • instance1: ① 12000, ② 12001, ③ 12002, ④ 12003
  • instance2: ① 13000, ② 13001, ③ 13002, ④ 13003

作成启动停止脚本

为了方便启动和停止实例,下面分别作成 启动 和 停止脚本。(以 instance1 为例进行说明)

cd /home/user1/study/tomcat/instance1# 创建 bin 目录用于存放 脚本mkdir bin# 创建 启动 脚本(内容在下面给出)vim start.sh# 创建 停止 脚本(内容在下面给出)vim stop.sh
  • start.sh 内容
#!/bin/shexport CATALINA_HOME="/opt/apache-tomcat-8.0.30"export CATALINA_BASE="/home/user1/study/tomcat/instance1"${CATALINA_HOME}/bin/startup.sh
  • stop.sh 内容
#!/bin/shexport CATALINA_HOME="/opt/apache-tomcat-8.0.30"export CATALINA_BASE="/home/user1/study/tomcat/instance1"${CATALINA_HOME}/bin/shutdown.sh

其中:

  • CATALINA_HOME 必须是服务器上Tomcat的根目录。
  • CATALINA_BASE 是每个实例的根目录。

部署应用

demo1demo2war 包分别放至 instance1instance2webapps目录下,然后执行 bin 目录下的 start.sh 脚本

访问应用

在浏览器分别打开以下两个链接:

  • http://localhost:12001/demo1
  • http://localhost:13001/demo2

停止应用

分别执行 instance1instance2bin 目录下的 stop.sh 脚本即可。

0 0
原创粉丝点击