步骤1:准备Tomcat安装包
- 下载Tomcat二进制包(如
apache-tomcat-9.0.xx.tar.gz)。 - 解压两次到不同目录(
/opt/tomcat1和/opt/tomcat2):tar -xzvf apache-tomcat-9.0.xx.tar.gz -C /opt/tomcat1 tar -xzvf apache-tomcat-9.0.xx.tar.gz -C /opt/tomcat2
步骤2:配置环境变量(可选)
为每个Tomcat设置独立的环境变量(推荐):

- 编辑
tomcat1/bin/setenv.sh(新建):export CATALINA_HOME=/opt/tomcat1 export CATALINA_BASE=/opt/tomcat1
- 编辑
tomcat2/bin/setenv.sh:export CATALINA_HOME=/opt/tomcat2 export CATALINA_BASE=/opt/tomcat2
- 赋予执行权限:
chmod +x /opt/tomcat*/bin/setenv.sh
步骤3:修改端口号(关键)
避免端口冲突,修改第二个Tomcat的端口(在 tomcat2/conf/server.xml 中):
主要端口修改:
| 端口类型 | 默认值 | 修改为(示例) |
|---|---|---|
| 关闭端口 | 8005 | 8006 |
| HTTP/1.1 连接器 | 8080 | 8081 |
| AJP 连接器 | 8009 | 8010 |
修改 tomcat2/conf/server.xml:
<!-- 关闭端口修改 --> <Server port="8006" shutdown="SHUTDOWN"> <!-- 原8005改为8006 --> <!-- HTTP连接器修改 --> <Connector port="8081" protocol="HTTP/1.1" ... /> <!-- 原8080改为8081 --> <!-- AJP连接器修改 --> <Connector port="8010" protocol="AJP/1.3" ... /> <!-- 原8009改为8010 -->
步骤4:配置独立日志(可选)
确保日志目录分离,在 tomcat2/conf/server.xml 中修改:

<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs/tomcat2" <!-- 日志目录改为tomcat2 -->
prefix="tomcat2_access"
suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
步骤5:启动Tomcat实例
# 启动第一个Tomcat /opt/tomcat1/bin/startup.sh # 启动第二个Tomcat /opt/tomcat2/bin/startup.sh
步骤6:验证部署
- 访问第一个Tomcat:
http://服务器IP:8080 - 访问第二个Tomcat:
http://服务器IP:8081
防火墙配置(如果需要)
开放新端口:
# 开放8081端口(以CentOS为例) firewall-cmd --zone=public --add-port=8081/tcp --permanent firewall-cmd --reload
常见问题排查
- 端口冲突:
- 检查端口占用:
netstat -tunlp | grep <端口号>
- 检查端口占用:
- 启动失败:
- 查看日志:
tail -f /opt/tomcat2/logs/catalina.out
- 查看日志:
- 内存不足:
- 调整内存:在
bin/setenv.sh中设置JAVA_OPTS:export JAVA_OPTS="-Xms512M -Xmx1024M"
- 调整内存:在
优化建议
- 使用Nginx反向代理:统一入口,转发请求到不同Tomcat。
server { listen 80; server_name app1.example.com; location / { proxy_pass http://localhost:8080; } } server { listen 80; server_name app2.example.com; location / { proxy_pass http://localhost:8081; } } - 脚本化管理:编写启动/停止脚本统一管理两个实例。
通过以上步骤,即可在单台服务器上安全运行两个独立的Tomcat实例。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/291745.html

