在Linux下管理多个Tomcat实例,可以通过以下步骤实现:
下载并解压Tomcat: 从官方网站下载所需版本的Tomcat,并将其解压到不同的目录中。例如:
wget https://www.apache.org/dyn/closer.cgi/action=download&filename=tomcat9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
tar -xzvf apache-tomcat-9.0.56.tar.gz -C /opt
配置环境变量:
为了避免在启动和停止Tomcat实例时每次都输入完整的路径,可以为每个Tomcat实例配置环境变量。编辑~/.bashrc
或~/.bash_profile
文件,添加如下内容:
export CATALINA_HOME_1=/opt/apache-tomcat-9.0.56
export CATALINA_HOME_2=/opt/apache-tomcat-9.0.60
保存文件并运行source ~/.bashrc
或source ~/.bash_profile
使环境变量生效。
创建启动脚本:
为每个Tomcat实例创建一个启动脚本。例如,创建start_tomcat1.sh
和start_tomcat2.sh
文件,内容如下:
#!/bin/bash
export CATALINA_HOME=/opt/apache-tomcat-9.0.56
$CATALINA_HOME/bin/startup.sh
同样,为停止Tomcat实例创建stop_tomcat1.sh
和stop_tomcat2.sh
文件,内容如下:
#!/bin/bash
export CATALINA_HOME=/opt/apache-tomcat-9.0.56
$CATALINA_HOME/bin/shutdown.sh
为每个脚本添加可执行权限:
chmod +x start_tomcat1.sh
chmod +x stop_tomcat1.sh
chmod +x start_tomcat2.sh
chmod +x stop_tomcat2.sh
配置端口:
确保每个Tomcat实例使用不同的端口。编辑每个实例的conf/server.xml
文件,修改以下端口:
例如,将第一个实例的HTTP端口修改为8081,第二个实例的HTTP端口修改为8082。
启动和停止Tomcat实例: 使用创建的启动和停止脚本管理Tomcat实例。例如:
./start_tomcat1.sh
./start_tomcat2.sh
./stop_tomcat1.sh
./stop_tomcat2.sh
使用systemd管理Tomcat实例(可选):
如果希望使用systemd来管理Tomcat实例,可以为每个实例创建一个systemd服务文件。例如,创建/etc/systemd/system/tomcat1.service
和/etc/systemd/system/tomcat2.service
文件,内容如下:
tomcat1.service:
[Unit]
Description=Apache Tomcat 9.0.56
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Environment=CATALINA_PID=/opt/apache-tomcat-9.0.56/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/apache-tomcat-9.0.56
Environment=CATALINA_BASE=/opt/apache-tomcat-9.0.56
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/apache-tomcat-9.0.56/bin/startup.sh
ExecStop=/opt/apache-tomcat-9.0.56/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
tomcat2.service:
[Unit]
Description=Apache Tomcat 9.0.60
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Environment=CATALINA_PID=/opt/apache-tomcat-9.0.60/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/apache-tomcat-9.0.60
Environment=CATALINA_BASE=/opt/apache-tomcat-9.0.60
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/apache-tomcat-9.0.60/bin/startup.sh
ExecStop=/opt/apache-tomcat-9.0.60/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
为每个服务文件添加可执行权限:
chmod +x /etc/systemd/system/tomcat1.service
chmod +x /etc/systemd/system/tomcat2.service
启动和停止Tomcat实例:
systemctl start tomcat1
systemctl stop tomcat1
systemctl enable tomcat1
systemctl disable tomcat1
通过以上步骤,您可以在Linux下管理多个Tomcat实例。