Tomcat 多实例部署指的是:
同一个 Tomcat 安装目录(二进制程序),运行多个独立的 Tomcat 实例,每个实例有自己的一套:
server.xml、端口)webapps)这是一种生产环境非常常见的做法,比“复制整个 Tomcat 目录”更优雅、更省空间。
Tomcat 运行时只关心 CATALINA_HOME 和 CATALINA_BASE:
| 变量 | 含义 |
|---|---|
CATALINA_HOME |
Tomcat 安装目录(bin、lib) |
CATALINA_BASE |
实例目录(conf、webapps、logs、work、temp) |
✅ 多实例的关键:
CATALINA_BASECATALINA_HOME假设:
/usr/local/tomcat/ # CATALINA_HOME(Tomcat 安装目录)
/usr/local/tomcat-instance/
├── instance1/
│ ├── conf/
│ ├── webapps/
│ ├── logs/
│ ├── work/
│ └── temp/
├── instance2/
│ ├── conf/
│ ├── webapps/
│ ├── logs/
│ ├── work/
│ └── temp/
tar -zxvf apache-tomcat-9.0.xx.tar.gz
mv apache-tomcat-9.0.xx /usr/local/tomcat
mkdir -p /usr/local/tomcat-instance/instance1
mkdir -p /usr/local/tomcat-instance/instance2
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
编辑:
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" />
✅ 至少保证以下端口不同:
创建:
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
cd /usr/local/tomcat-instance/instance1
./start.sh
cd /usr/local/tomcat-instance/instance2
./start.sh
验证:
ps -ef | grep tomcat
ss -lntp | grep java
访问:
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat-instance/instance1
$CATALINA_HOME/bin/shutdown.sh
CATALINA_HOMECATALINA_HOME 和 CATALINA_BASEsetenv.sh 可独立配置 JVM如果你需要 systemd 管理多个 Tomcat 实例,我可以直接给你:
tomcat-instance1.servicetomcat-instance2.service是否继续?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。