一個Tomcat運行多個實例

本文介紹在同一個tomcat下運行mydomain.com和mysite.com這兩個實例的步驟。web

有時候,咱們但願週期性的更新Tomcat;有時候,咱們又想統一管理安裝在一臺機器上的tomcat(好比讓tomcat版本統一,讓多個實例的tomcat的依賴統1、配置統一等)。在這些場景下,咱們都不但願把Web應用程序的文件放入Tomcat發行版的目錄結構中,而是讓一個tomcat運行多個實例,並把Web應用放在tomcat的安裝目錄以外。apache

通常在使用Tomcat時,服務器會從conf及webapps目錄中讀取配置文件,並將文件寫入logs、temp和work目錄,固然一些jar文件和class文件須要從服務器的公共目錄樹中予以加載。所以,爲了讓多個實例能同時運行,每個Tomcat實例都必須有本身的目錄集瀏覽器

首先,下載tomcat安裝包,並解壓,這裏我使用的tomcat版本是tomcat-8.0.33:tomcat

而後,建立一個文件夾tomcat-instance(該文件夾用於存放tomcat全部實例),並在這個文件夾下分別建立mydomain.com和mysite.com兩個實例文件夾:服務器

mkdir tomcat-instance
cd tomcat-instance
mkdir mydomain.com
mkdir mysite.com

對於mydomain.com,依次作如下步驟:app

1. 拷貝Tomcat安裝目錄的conf文件夾下的全部內容,到mydomain.com文件夾下:dom

cd mydomain.com
cp -a /home/user/Software/apache-tomcat-8.0.33/conf .
mkdir common logs temp server shared webapps work

2.修改mydomain.com/conf/server.xml,將中止端口號修改成不一樣的端口號:webapp

3.修改Connector的端口號:spa

4.刪除server.xml中全部的Context元素(由於這份server.xml來自於tomcat的安裝目錄,若是曾經用該tomcat部署過項目,server.xml中就會有Context元素,因爲如今沒有將這些項目複製到mydomain.com實例的webapps文件夾下)及嵌套的全部元素,並加入與本身的webapps相關的內容。code

5.爲了簡化變量設置步驟,建立tomcat啓動腳本start-mydomain.sh,並將該文件放在tomcat-instance目錄下,該文件的內容以下:

6.修改腳本的權限,使其可執行:

7.用腳本啓動tomcat實例:

能夠看到,這個實例使用的CATALINA_BASE是instance/mydomain.com,這裏的CATALINA_HOME是安裝tomcat的目錄

8.將Web應用程序內容拷貝到mydomain.com/webapps目錄(這裏我只拷貝示例文件),從瀏覽器驗證啓動的tomcat實例:

到這裏,tomcat實例mydomain.com已經正常運行了。

另外一個實例mysite.com也按照1~8的步驟依次進行,可是注意如下步驟的不一樣配置:

2.Server端口號修改成8013。

3.Connector端口號修改成8082。

5.腳本中的CATALINA_BASE修改成/home/user/Software/tomcat-instance/mysite.com。

7.用腳本啓動mysite.com實例:

能夠看到,這個實例使用的CATALINA_BASE是instance/mysite.com。而這裏的CATALINA_HOME依然是安裝tomcat的目錄,這和mydomain.com實例的配置是同樣的,說明兩者確實共用了一個安裝目錄

8.拷貝示例文件到mysite.com/webapps目錄,從瀏覽器驗證啓動的tomcat實例:

至此,tomcat的多實例已能正常運行,固然,也能夠爲這些實例建立中止tomcat的腳本。

當把Web應用的文件和Tomcat發行版的文件分開管理後,升級Tomcat將會變得十分容易,由於咱們能夠用新目錄直接替換整個Tomcat發行版的目錄。

相關文章
相關標籤/搜索