CentOS7 Linux 安裝Tomcat,同一個軟體包啟動多個服務執行個體怎麼處理?,centos7tomcat
CentOS 7 Linux 安裝Tomcat,同一個軟體包啟動多個服務執行個體怎麼處理?
此文章主要介紹一下同一個tomcat程式包啟動多個服務執行個體,雖然在很多時候有些程式員感覺這麼做很無聊,但對我這種很會節省磁碟空間的人來說,此方法還是很不錯的,而且通過這種方法,升級Tomcat版本也是非常容易的。
話不多說直接上操作。
安裝Tomcat
此過程不介紹,大家請看之前的文章吧。
CentOS 7 Linux 安裝Tomcat 8(咋個辦呢 zgbn)
CentOS 7 Linux 安裝Tomcat 8 - JVM記憶體最佳化(咋個辦呢 zgbn)
配置多個服務執行個體
閑來看一下配置好的目錄,如。
Tomcat程式包建立軟串連
Tomcat安裝完成並最佳化配置後,方便操作配置,為原來程式包建立一個軟串連目錄。
[root@iZ28sn apache]# ln -s tomcat-8.5.27/ tomcat[root@iZ28sn apache]# lltotal 12lrwxrwxrwx 1 root root 14 Feb 9 19:22 tomcat -> tomcat-8.5.27/drwxr-xr-x 9 www www 4096 Jan 31 01:23 tomcat-8.5.27
建立多服務執行個體設定檔
通過安裝完成Tomcat程式包進行copy動作,重新命名為tomcat-8180,tomcat-8280,之所以這麼做,主要是方便我管理,這裡名字代表的意思為:
tomcat-8.5.27:此tomcat服務將使用預設的8080連接埠對外發布服務(我個人不會開啟此服務);
tomcat-8180:此tomcat服務將使用8180連接埠對外發布服務;
tomcat-8280:此tomcat服務將使用8280連接埠對外發布服務;
命令:
[root@iZ28sn apache]# cp -r tomcat-8.5.27/ tomcat-8180[root@iZ28sn apache]# cp -r tomcat-8.5.27/ tomcat-8280
進入tomcat-8180目錄下,除下面列出的檔案夾外,其他的檔案夾全部可以刪除掉。
drwxr-x--- 2 www www 4096 Feb 9 19:12 bindrwx------ 3 www www 4096 Feb 1 01:06 confdrwxr-x--- 2 www www 4096 Feb 9 19:08 logsdrwxr-x--- 2 www www 4096 Feb 1 01:03 tempdrwxr-x--- 2 www www 4096 Feb 1 01:01 webappsdrwxr-x--- 2 www www 4096 Feb 1 01:01 work
進入/tomcat-8180/bin目錄下,刪除所有檔案。
[root@iZ28sn tomcat-8180]# cd bin/[root@iZ28sn bin]# rm -rf *[root@iZ28sn bin]# cd ..
分別進入/tomcat-8180/logs、/tomcat-8180/temp、/tomcat-8180/webapps、/tomcat-8180/work目錄下,刪除所有檔案。
只保留/tomcat-8180/conf目錄下的設定檔,並修改設定檔中連接埠號碼,我修改的比較直接,我的規則就是按著目錄的名字中的8180,將預設的8080發布連接埠修改為8180,其他的服務連接埠端部將第二位修改成_1__即可。
[root@iZ28sn conf]# vim server.xml
編寫多服務執行個體啟動指令碼
其實同一個Tomcat程式包,啟動多個服務執行個體,其原理就是通過啟動指令碼,來控制tomcat啟動的時候載入不同的設定檔。
進入/tomcat-8180/bin目錄下,建立指令碼檔案,並賦予可執行許可權。
[root@iZ28sn bin]# vim startup.sh[root@iZ28sn bin]# chmod +x startup.sh
指令碼內容
#!/bin/bash# 這裡執行的是軟串連地址,方便以後更換tomcat發行版本export CATALINA_HOME=/opt/apache/tomcatexport CATALINA_BASE="/opt/apache/tomcat-8180"export CATALINA_TMPDIR="$CATALINA_BASE/temp"export CATALINA_PID="$CATALINA_BASE/logs/tomcat.pid"# 建立logs目錄if [ ! -d "$CATALINA_BASE/logs" ]; then mkdir $CATALINA_BASE/logsfi# 建立temp目錄if [ ! -d "$CATALINA_BASE/temp" ]; then mkdir $CATALINA_BASE/tempfi# 調用tomcat啟動指令碼case $1 in start|stop|run) bash $CATALINA_HOME/bin/daemon.sh $1 echo "" echo "CATALINA_HOME=$CATALINA_HOME" echo "CATALINA_BASE=$CATALINA_BASE" echo "CATALINA_TMPDIR=$CATALINA_TMPDIR" echo "CATALINA_PID=$CATALINA_PID" echo "Action $CATALINA_BASE $1 end ......" echo "" ;; *) echo "usage: [start | stop | run]" ;;esac
啟動tomcat服務執行個體
啟動服務,查看tomcat進程情況。
[root@iZ28sn bin]# ./startup.sh start[root@iZ28sn bin]# ps -ef | grep tomcatroot 4310 1 0 19:43 ? 00:00:00 jsvc.exec -java-home /usr/lib/jvm/java-1.8.0-openjdk/jre ... -Dcatalina.base=/opt/apache/tomcat-8180 ... org.apache.catalina.startup.Bootstrapwww 4311 4310 6 19:43 ? 00:00:01 jsvc.exec -java-home /usr/lib/jvm/java-1.8.0-openjdk/jre ... -Dcatalina.base=/opt/apache/tomcat-8180 ... org.apache.catalina.startup.Bootstraproot 4446 3286 0 19:43 pts/2 00:00:00 grep --color=auto tomcat[root@iZ28sn bin]#