温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

tomcat怎么多实例部署

发布时间:2026-08-28 09:39:25 来源:亿速云 阅读:95 作者:小樊 栏目:系统运维

Tomcat 多实例部署指的是:
同一个 Tomcat 安装目录(二进制程序),运行多个独立的 Tomcat 实例,每个实例有自己的一套:

  • 配置(server.xml、端口)
  • 应用(webapps
  • 日志
  • 临时目录

这是一种生产环境非常常见的做法,比“复制整个 Tomcat 目录”更优雅、更省空间。


一、整体思路(核心原理)

Tomcat 运行时只关心 CATALINA_HOMECATALINA_BASE

变量 含义
CATALINA_HOME Tomcat 安装目录(bin、lib)
CATALINA_BASE 实例目录(conf、webapps、logs、work、temp)

多实例的关键

  • 多个 CATALINA_BASE
  • 一个 CATALINA_HOME

二、目录规划(推荐)

假设:

/usr/local/tomcat/          # CATALINA_HOME(Tomcat 安装目录)
/usr/local/tomcat-instance/
├── instance1/
│   ├── conf/
│   ├── webapps/
│   ├── logs/
│   ├── work/
│   └── temp/
├── instance2/
│   ├── conf/
│   ├── webapps/
│   ├── logs/
│   ├── work/
│   └── temp/

三、操作步骤(实战)

1️⃣ 安装 Tomcat(只需一次)

tar -zxvf apache-tomcat-9.0.xx.tar.gz
mv apache-tomcat-9.0.xx /usr/local/tomcat

2️⃣ 创建实例目录

mkdir -p /usr/local/tomcat-instance/instance1
mkdir -p /usr/local/tomcat-instance/instance2

3️⃣ 拷贝必要目录(只拷贝这些)

cd /usr/local/tomcat
cp -r conf /usr/local/tomcat-instance/instance1/
cp -r conf /usr/local/tomcat-instance/instance2/

mkdir /usr/local/tomcat-instance/instance1/{webapps,logs,work,temp}
mkdir /usr/local/tomcat-instance/instance2/{webapps,logs,work,temp}

不要拷贝 bin、lib


4️⃣ 修改端口(非常重要)

编辑:

vim /usr/local/tomcat-instance/instance1/conf/server.xml
vim /usr/local/tomcat-instance/instance2/conf/server.xml

必须修改(否则端口冲突):

<!-- 实例1 -->
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1" />

<!-- 实例2 -->
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8081" protocol="HTTP/1.1" />

✅ 至少保证以下端口不同:

  • Server shutdown 端口
  • HTTP 端口
  • AJP 端口(如果启用)

5️⃣ 编写启动脚本(关键)

创建:

vim /usr/local/tomcat-instance/instance1/start.sh
#!/bin/bash
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat-instance/instance1
$CATALINA_HOME/bin/startup.sh

实例2同理:

export CATALINA_BASE=/usr/local/tomcat-instance/instance2

赋予执行权限:

chmod +x start.sh

6️⃣ 启动实例

cd /usr/local/tomcat-instance/instance1
./start.sh

cd /usr/local/tomcat-instance/instance2
./start.sh

验证:

ps -ef | grep tomcat
ss -lntp | grep java

访问:

  • http://localhost:8080
  • http://localhost:8081

四、停止实例

export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat-instance/instance1
$CATALINA_HOME/bin/shutdown.sh

五、常见优化 & 注意事项

✅ 优点

  • 节省磁盘
  • 升级 Tomcat 只需升级 CATALINA_HOME
  • 实例彼此隔离

⚠️ 注意

  • 端口必须唯一
  • 不要混用 CATALINA_HOMECATALINA_BASE
  • 每个实例自己的 setenv.sh 可独立配置 JVM

六、多实例 + systemd(进阶)

如果你需要 systemd 管理多个 Tomcat 实例,我可以直接给你:

  • tomcat-instance1.service
  • tomcat-instance2.service

是否继续?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI