在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:8080http://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實例。