1. 程式人生 > >Tomcat安裝以及多實例部署

Tomcat安裝以及多實例部署

tomcat安裝及多實例部署

1.簡介

Tomcat Apache 軟件基金會(Apache Software Foundation)的 Jakarta 項目中的一個核心項目, ApacheSun 和其他一些公司及個人共同開發而成。Tomcat 技術先進、性能穩定,而且免費,因而深受 Java 愛好者的喜愛並得到了部分軟件開發商的認可,成為目前比較流行的 Web 應用服務器。

端口8080

2.安裝

先安裝環境變量jdkapache-tomcatjdk-8u144-linux-x64.rpm apache-tomcat-8.5.20.tar.gz Tomcat解壓後就可以使用)

[root@localhosttools]# rpm -ivh jdk-8u144-linux-x64.rpm

[root@localhosttools]# tar xf apache-tomcat-8.5.20.tar.gz -C /usr/local

[root@localhosttools]# cd /usr/local/

[root@localhostlocal]# ln -sv apache-tomcat-8.5.20/ tomcat //軟連接


為了方便使用我在此寫了一個系統腳本(tomcat.sh)

[root@localhostlocal]# vim /etc/init.d/tomcat

添加執行權限並啟動:

[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自動部署路徑

3.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 每個運行實例需要使用自己的 conflogstempwebapps、和 work 目錄,因此CATALINA_BASE 就指向這些目錄。而其他目錄主要包括了Tomcat的二進制文件和腳本,CATALINA_HOME 就指向這些目錄。如果我們希望再運行另一個 Tomcat 實例,那麽我們可以建立一個目錄,把 conflogstempwebapps work 拷貝到該目錄下,然後讓 CATALINA_BASE指向該目錄即可。保證每個實例以下三個端口不同即可。

(1) 修改 Shutdown 端口(默認為 8005 端口)

(2) 修改 http 訪問端口(默認為 8080 端口)

(3) 修改 8009ajp)端口。

部署實例:

[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

修改端口:

SHUTDOWN8006 HTTP8081 AJP8010

寫一個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這個文件


本文出自 “13382604” 博客,請務必保留此出處http://13392604.blog.51cto.com/13382604/1983754

Tomcat安裝以及多實例部署