centos

如何在CentOS上部署多个Tomcat实例

小樊
47
2025-03-21 16:23:51
栏目: 智能运维

在CentOS上部署多个Tomcat实例可以通过以下步骤实现。每个实例将运行在不同的端口上,并且可以有不同的配置文件和应用程序。以下是一个基本的指南:

1. 下载并解压Tomcat

首先,下载你需要的Tomcat版本并解压到不同的目录。

wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
tar -xzvf apache-tomcat-9.0.56.tar.gz -C /opt

重复上述步骤下载并解压其他版本的Tomcat到不同的目录,例如:

tar -xzvf apache-tomcat-9.0.56.tar.gz -C /opt/tomcat8

2. 配置环境变量

为每个Tomcat实例设置不同的环境变量。

export CATALINA_HOME=/opt/tomcat9
export PATH=$CATALINA_HOME/bin:$PATH

对于第二个Tomcat实例:

export CATALINA_HOME=/opt/tomcat8
export PATH=$CATALINA_HOME/bin:$PATH

3. 配置端口

编辑每个Tomcat实例的conf/server.xml文件,确保它们使用不同的端口。

Tomcat 9

编辑/opt/tomcat9/conf/server.xml

<Server port="8005" shutdown="SHUTDOWN">
  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
      </Host>
    </Engine>
  </Service>
</Server>

Tomcat 8

编辑/opt/tomcat8/conf/server.xml

<Server port="8105" shutdown="SHUTDOWN">
  <Service name="Catalina">
    <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8444" />
    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
      </Host>
    </Engine>
  </Service>
</Server>

4. 配置管理用户

编辑每个Tomcat实例的conf/tomcat-users.xml文件,添加管理用户。

<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <user username="admin" password="admin" roles="manager-gui,admin-gui"/>
</tomcat-users>

5. 启动Tomcat实例

使用以下命令启动每个Tomcat实例:

Tomcat 9

/opt/tomcat9/bin/startup.sh

Tomcat 8

/opt/tomcat8/bin/startup.sh

6. 验证部署

打开浏览器并访问以下URL以验证每个Tomcat实例是否正常运行:

7. 配置防火墙

确保防火墙允许访问这些端口。

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8081/tcp
sudo firewall-cmd --reload

8. 使用systemd管理Tomcat服务(可选)

你可以创建systemd服务文件来管理Tomcat实例。

Tomcat 9

创建/etc/systemd/system/tomcat9.service

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk
Environment=CATALINA_PID=/opt/tomcat9/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat9
Environment=CATALINA_BASE=/opt/tomcat9
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat9/bin/startup.sh
ExecStop=/opt/tomcat9/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

创建/etc/systemd/system/tomcat8.service

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk
Environment=CATALINA_PID=/opt/tomcat8/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat8
Environment=CATALINA_BASE=/opt/tomcat8
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat8/bin/startup.sh
ExecStop=/opt/tomcat8/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

启动并启用服务:

sudo systemctl daemon-reload
sudo systemctl start tomcat9
sudo systemctl enable tomcat9
sudo systemctl start tomcat8
sudo systemctl enable tomcat8

通过以上步骤,你可以在CentOS上成功部署多个Tomcat实例。

0
看了该问题的人还看了