You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于RHEL RPM包创建多Tomcat9实例(RHEL8.7环境)

在RHEL8.7上创建Tomcat9多实例的两种方法

你不需要必须复制完整的Tomcat目录(比如/usr/share/tomcat1),有两种更灵活的实现方式,具体如下:

方法一:复制完整独立实例(适合快速部署)

这种方式让每个实例完全独立,配置和运行互不干扰:

  • 复制原Tomcat目录到新路径:
    cp -r /usr/share/tomcat /usr/share/tomcat2
    
  • 修改新实例的端口配置:编辑/usr/share/tomcat2/conf/server.xml,修改三个关键端口避免冲突:
    • 将HTTP Connector的port="8080"改为port="8081"
    • 将AJP Connector的port="8009"改为port="8010"
    • 将Shutdown端口的port="8005"改为port="8006"
  • 配置systemd服务:创建/etc/systemd/system/tomcat2.service,参考原tomcat.service调整路径:
    [Unit]
    Description=Apache Tomcat Instance 2
    After=syslog.target network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/share/tomcat2/bin/startup.sh
    ExecStop=/usr/share/tomcat2/bin/shutdown.sh
    User=tomcat
    Group=tomcat
    Restart=on-failure
    PIDFile=/usr/share/tomcat2/temp/tomcat2.pid
    
    [Install]
    WantedBy=multi-user.target
    
  • 启动并启用服务:
    systemctl daemon-reload
    systemctl enable --now tomcat2
    

方法二:共享核心文件,分离实例目录(推荐,节省空间)

RPM安装的Tomcat核心文件(bin、lib等)存放在/usr/share/tomcat(即CATALINA_HOME),可以让多个实例共享这个核心目录,每个实例只保留自己的配置、应用、日志等专属目录:

  1. 创建实例专属目录结构:
    mkdir -p /opt/tomcat-instances/tomcat2/{conf,webapps,work,temp,logs}
    chown -R tomcat:tomcat /opt/tomcat-instances/tomcat2
    
  2. 复制原配置文件到实例目录:
    cp -r /usr/share/tomcat/conf/* /opt/tomcat-instances/tomcat2/conf/
    
  3. 修改实例的端口配置:编辑/opt/tomcat-instances/tomcat2/conf/server.xml,调整端口避免冲突(同方法一)。
  4. 设置实例环境变量:创建实例的setenv.sh文件,指定共享的核心目录和实例目录:
    mkdir /opt/tomcat-instances/tomcat2/bin
    cat > /opt/tomcat-instances/tomcat2/bin/setenv.sh << EOF
    export CATALINA_HOME=/usr/share/tomcat
    export CATALINA_BASE=/opt/tomcat-instances/tomcat2
    EOF
    chmod +x /opt/tomcat-instances/tomcat2/bin/setenv.sh
    chown tomcat:tomcat /opt/tomcat-instances/tomcat2/bin/setenv.sh
    
  5. 配置systemd服务:创建/etc/systemd/system/tomcat2.service:
    [Unit]
    Description=Apache Tomcat Instance 2
    After=syslog.target network.target
    
    [Service]
    Type=forking
    Environment="CATALINA_HOME=/usr/share/tomcat"
    Environment="CATALINA_BASE=/opt/tomcat-instances/tomcat2"
    ExecStart=/usr/share/tomcat/bin/startup.sh
    ExecStop=/usr/share/tomcat/bin/shutdown.sh
    User=tomcat
    Group=tomcat
    Restart=on-failure
    PIDFile=/opt/tomcat-instances/tomcat2/temp/tomcat2.pid
    
    [Install]
    WantedBy=multi-user.target
    
  6. 启动服务:
    systemctl daemon-reload
    systemctl enable --now tomcat2
    

注意事项

  • 权限:确保tomcat用户对实例目录拥有读写权限,避免启动失败。
  • 日志:每个实例的日志会保存在自己的logs目录,方便单独排查问题。
  • 升级:使用方法二时,通过RPM升级Tomcat核心后,所有实例会自动使用新版本,无需逐个更新。

内容的提问来源于stack exchange,提问作者user21742699

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 08:35:33