歡迎光臨
每天分享高質量文章

Tomcat 單機多實體部署

(點擊上方公眾號,可快速關註)


來源:ImportNew – xbing

在這篇文章中,我們將會看到在單機單用戶基礎上,如何運行多個tomcat實體。

我們首先看到的是tomcat的目錄結構,其每個檔案夾有以下用途:

  • bin – 包含所有運行tomcat的二進制和腳本檔案

  • lib – 包含tomcat使用的所有共享庫

  • conf – 包含配置信息,如tomcat系結的端口等

  • logs – 包含所有的日誌檔案

  • temp – 此目錄是tomcat存放的臨時檔案

  • webapps – 此目錄非常重要,這裡存放所有的應用程式war包

  • work – 如果應用程式包含jsp檔案,那麼每個jsp檔案會被編譯轉化為servlet,存放於此

當我們運行Tomcat時,會用到5個環境變數。他們是:

  • CATALINA_HOME

  • CATALINA_BASE

  • CATALINA_TMPDIR

  • JRE_HOME/JAVA_HOME

  • CLASSPATH

在以上串列中,CATALINA_HOME和JAVA_HOME是必要的環境變數。其它的都可以通過CATALINA_HOME來轉換,是可選的。

CATALINA_HOME – 此環境變數是tomcat安裝/提取的根目錄。所以通過CATALINA_HOME,可以得到bin和lib目錄。

CATALINA_BASE – 如果不指定則是CATALINA_HOME的值。該變數指向的目錄裡面包括每個運行實體需要使用自己的conf、logs、temp、webapps、work目錄。

一般運行Tomcat的方法是,只設置CATALINA_HOME變數,執行startup.sh腳本,startup.sh會自動轉換其它未設置的變數。

startup.sh設置環境變數時呼叫catalina.sh腳本,此腳本會讀取CATALINA_BASE的值,在$CATALINA_BASE/conf目錄,得到server.xml。這個檔案時Tomcat的核心配置,它包含所有的配置信息,如shutdown端口,connector端口,主機名稱,應用目錄等。例如,Tomcat通常使用8080作為連接端口,所以我們可以通過http://localhost:8080/訪問。

如果我們已經設置$CATALINA_BASE,Tomcat就會從該變數所對應的目錄搜索得到server.xml。

使用此方法可以在一臺機器上運行多個Tomcat實體。我們不需要改變CATALINA_HOME值,只需要在啟動/關閉Tomcat之前修改CATALINA_BASE值。

創建一個名為“tomcat-instance1”的目錄,從CATALINA_HOME目錄中複製conf,logs,temp,webapps,work目錄,修改“tomcat-instance1”目錄中的conf/server.xml檔案。需要修改的端口是:Shutdown port,Connector port,ajp port和Redirect port。

Shutdown port – 此端口用於關閉Tomcat。當執行shutdown.sh腳本時,它會給此端口發出一個信號,Tomcat的行程會監聽此端口,如果接收到這樣的信號,行程會清理退出。

Connector port – 此端口是應用對外公開發佈的端口。

ajp port – Web服務器(例如Apache的httpd Server)通過此端口和Tomcat進行通信,也可以使用它設置一個負載均衡服務器。

Redirect port – 如果此Connector支持非SSL請求和接收SSL請求,Catalina會自動將請求指向到此端口。

看看示例server.xml檔案:

    …..

   

        connectiontimeout=”20000″port=”8080″

        protocol=”org.apache.coyote.http11.Http11NioProtocol”

        redirectport=”8443″ />

   

因為一個端口一旦被系結,其它行程就不能再系結,所以我們將這些端口修改為其它值。在tomcat-instance1/conf/server.xml檔案,配置server port =8105,connector port = 8181,ajp port = 8109。

    …..

   

        connectiontimeout=”20000″ port=”8181″

        protocol=”org.apache.coyote.http11.Http11NioProtocol”

        redirectport=”81443″ />

   

現在我們可以創建兩個腳本檔案來啟動關閉tomcat-instance1。

startup-instance1.sh

export CATALINA_BASE= /home/ramki/tomcat-instance1

cd $CATALINA_HOME/bin

./startup.sh

shutdown-instance1.sh

export CATALINA_BASE= /home/ramki/tomcat-instance1

cd $CATALINA_HOME/bin

./shutdown.sh

這裡我們設置了CATALINA_BASE變數並指向新的 tomcat-instance1。因為運行tomcat的所有二進制檔案都在CATALINA_HOME/bin目錄,隨後使用startup/shutdown腳本。

綜上所述,我們可以通過創建多實體目錄並修改conf/server.xml檔案中的port值來運行實體。

看完本文有收穫?請轉發分享給更多人

關註「ImportNew」,提升Java技能

赞(0)

分享創造快樂