在CentOS上部署多个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
为每个Tomcat实例设置不同的环境变量。
export CATALINA_HOME=/opt/tomcat9
export PATH=$CATALINA_HOME/bin:$PATH
对于第二个Tomcat实例:
export CATALINA_HOME=/opt/tomcat8
export PATH=$CATALINA_HOME/bin:$PATH
编辑每个Tomcat实例的conf/server.xml
文件,确保它们使用不同的端口。
编辑/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>
编辑/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>
编辑每个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>
使用以下命令启动每个Tomcat实例:
/opt/tomcat9/bin/startup.sh
/opt/tomcat8/bin/startup.sh
打开浏览器并访问以下URL以验证每个Tomcat实例是否正常运行:
http://your_server_ip:8080
http://your_server_ip:8081
确保防火墙允许访问这些端口。
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8081/tcp
sudo firewall-cmd --reload
你可以创建systemd服务文件来管理Tomcat实例。
创建/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实例。