Tomcat 是 Apache 軟件基金會(Apache Software Foundation)的 Jakarta 項目中的一個核心項目, 由 Apache、Sun 和其餘一些公司及我的共同開發而成。Tomcat 技術先進、性能穩定,並且免費,於是深受 Java 愛好者的喜好並獲得了部分軟件開發商的承認,成爲目前比較流行的 Web 應用服務器。linux
端口8080web
先安裝環境變量jdk和apache-tomcat(jdk-8u144-linux-x64.rpm 、apache-tomcat-8.5.20.tar.gz Tomcat解壓後就可使用)shell
[root@localhosttools]# rpm -ivh jdk-8u144-linux-x64.rpmapache
[root@localhosttools]# tar xf apache-tomcat-8.5.20.tar.gz -C /usr/localvim
[root@localhosttools]# cd /usr/local/tomcat
[root@localhostlocal]# ln -sv apache-tomcat-8.5.20/ tomcat //軟鏈接服務器
爲了方便使用我在此寫了一個系統腳本(tomcat.sh)app
[root@localhostlocal]# vim /etc/init.d/tomcatwebapp
添加執行權限並啓動:ide
[root@localhostlocal]# chmod +x /etc/init.d/tomcat
[root@localhostlocal]# chkconfig --add tomcat
[root@localhostlocal]# service tomcat start
[root@localhost~]# cd /usr/local/tomcat/webapps/ //Tomcat自動部署路徑
咱們常有在 JAVA Web 應用部署或依賴 Tomcat 應用中遇到單機多實例的需求,解決方案通常有:
1、複製 Tomcat 到不一樣目錄,更改 Server.xml 等配置文件;
2、部署不一樣應用實例到 webapps 目錄下或直接將多項目部署到同一 Tomcat 實例中。
以此解決多項目部署問題,這種解決思路有如下幾個問題:
1、複製多 Tomcat 難於維護。Tomcat 版本升級或更改配置將變得讓維護人員很頭疼;
2、複製多 Tomcat 資源消耗大。
3、對於多項目同時部署到 Tomcat webapps 目錄下的解決,項目與項目間依賴度過高,不方便統一調試或日誌跟蹤於定位。
4、若是項目中存在過於多的單例,多項目同時有依賴且部署在同一 webapps 目錄下,則可能導致項目沒法正常運行或頻繁出 BUG;
5、項目複製在同一 webapps 下,對於熱加載和熱部署也形成了很大的困難。雖然 Tomcat 管理可以實現熱部署,可是對於實際線上項目,生成 war 包進行熱部署,Tomcat 自帶的熱部署功能便顯得不盡人意。
簡單的說,CATALINA_HOME 是 Tomcat的安裝目錄,CATALINA_BASE 是Tomcat 的工做目錄。若是咱們想要運行 Tomcat 的多個實例,可是不想安裝多個 Tomcat 軟件副本。那麼咱們可以配置多個工做目錄,每一個運行實例獨佔一個工做目錄,可是共享同一個安裝目錄。Tomcat 每一個運行實例須要使用本身的 conf、logs、temp、webapps、和 work 目錄,所以CATALINA_BASE 就指向這些目錄。而其餘目錄主要包括了Tomcat的二進制文件和腳本,CATALINA_HOME 就指向這些目錄。若是咱們但願再運行另外一個 Tomcat 實例,那麼咱們能夠創建一個目錄,把 conf、logs、temp、webapps 和 work 拷貝到該目錄下,而後讓 CATALINA_BASE指向該目錄便可。保證每一個實例如下三個端口不一樣便可。
(1) 修改 Shutdown 端口(默認爲 8005 端口)。
(2) 修改 http 訪問端口(默認爲 8080 端口)。
(3) 修改 8009(ajp)端口。
部署實例:
[root@localhost~]# service tomcat stop //先中止Tomcat
[root@localhost~]# cd /usr/local/tomcat/
[root@localhosttomcat]# mkdir tomcat{1,2}
[root@localhosttomcat]# cp -a conf/ logs/ temp/ webapps/ work/ tomcat1
[root@localhosttomcat]# cp -a conf/ logs/ temp/ webapps/ work/ tomcat2
修改子目錄 conf/server.xml;
tomcat1 保持默認端口
tomcat2 修改
[root@localhosttomcat]# vim tomcat2/conf/server.xml
修改端口:
SHUTDOWN:8006 HTTP:8081 AJP:8010
寫一個shell啓動腳本:(tomcat.sh)
[root@localhosttomcat]# mv /etc/init.d/tomcat /etc/init.d/tomcat1
將export CATALINA_BASE=$CATALINA_HOME改爲export CATALINA_BASE=$CATALINA_HOME/tomcat1
[root@localhosttomcat]# cp -p /etc/init.d/tomcat1 /etc/init.d/tomcat2
將export CATALINA_BASE=$CATALINA_HOME改爲export CATALINA_BASE=$CATALINA_HOME/tomcat2
[root@localhosttomcat]# chkconfig --add tomcat1
[root@localhosttomcat]# chkconfig --add tomcat2
啓動:
[root@localhosttomcat]# service tomcat1 start
[root@localhosttomcat]# service tomcat2 start
日誌文件:
[root@localhosttomcat]# cd /usr/local/tomcat/tomcat2/logs/
catalina.out這個文件