在這篇文章中,我們將會(huì)看到在單機(jī)單用戶基礎(chǔ)上,如何運(yùn)行多個(gè)tomcat實(shí)例。 我們首先看到的是tomcat的目錄結(jié)構(gòu),其每個(gè)文件夾有以下用途:
![]() 當(dāng)我們運(yùn)行Tomcat時(shí),會(huì)用到5個(gè)環(huán)境變量。他們是:
在以上列表中,CATALINA_HOME和JAVA_HOME是必要的環(huán)境變量。其它的都可以通過CATALINA_HOME來轉(zhuǎn)換,是可選的。 CATALINA_HOME – 此環(huán)境變量是tomcat安裝/提取的根目錄。所以通過CATALINA_HOME,可以得到bin和lib目錄。 CATALINA_BASE – 如果不指定則是CATALINA_HOME的值。該變量指向的目錄里面包括每個(gè)運(yùn)行實(shí)例需要使用自己的conf、logs、temp、webapps、work目錄。 一般運(yùn)行Tomcat的方法是,只設(shè)置CATALINA_HOME變量,執(zhí)行startup.sh腳本,startup.sh會(huì)自動(dòng)轉(zhuǎn)換其它未設(shè)置的變量。 ![]()
startup.sh設(shè)置環(huán)境變量時(shí)調(diào)用catalina.sh腳本,此腳本會(huì)讀取CATALINA_BASE的值,在$CATALINA_BASE/conf目錄,得到server.xml。這個(gè)文件時(shí)Tomcat的核心配置,它包含所有的配置信息,如shutdown端口,connector端口,主機(jī)名稱,應(yīng)用目錄等。例如,Tomcat通常使用8080作為連接端口,所以我們可以通過http://localhost:8080/訪問。 如果我們已經(jīng)設(shè)置$CATALINA_BASE,Tomcat就會(huì)從該變量所對(duì)應(yīng)的目錄搜索得到server.xml。 使用此方法可以在一臺(tái)機(jī)器上運(yùn)行多個(gè)Tomcat實(shí)例。我們不需要改變CATALINA_HOME值,只需要在啟動(dòng)/關(guān)閉Tomcat之前修改CATALINA_BASE值。 創(chuàng)建一個(gè)名為“tomcat-instance1”的目錄,從CATALINA_HOME目錄中復(fù)制conf,logs,temp,webapps,work目錄,修改“tomcat-instance1”目錄中的conf/server.xml文件。需要修改的端口是:Shutdown port,Connector port,ajp port和Redirect port。 Shutdown port – 此端口用于關(guān)閉Tomcat。當(dāng)執(zhí)行shutdown.sh腳本時(shí),它會(huì)給此端口發(fā)出一個(gè)信號(hào),Tomcat的進(jìn)程會(huì)監(jiān)聽此端口,如果接收到這樣的信號(hào),進(jìn)程會(huì)清理退出。 Connector port - 此端口是應(yīng)用對(duì)外公開發(fā)布的端口。 ajp port – Web服務(wù)器(例如Apache的httpd Server)通過此端口和Tomcat進(jìn)行通信,也可以使用它設(shè)置一個(gè)負(fù)載均衡服務(wù)器。 Redirect port – 如果此Connector支持非SSL請(qǐng)求和接收SSL請(qǐng)求,Catalina會(huì)自動(dòng)將請(qǐng)求指向到此端口。 看看示例server.xml文件:
因?yàn)橐粋€(gè)端口一旦被綁定,其它進(jìn)程就不能再綁定,所以我們將這些端口修改為其它值。在tomcat-instance1/conf/server.xml文件,配置server port =8105,connector port = 8181,ajp port = 8109。
現(xiàn)在我們可以創(chuàng)建兩個(gè)腳本文件來啟動(dòng)關(guān)閉tomcat-instance1。 startup-instance1.sh
shutdown-instance1.sh
這里我們?cè)O(shè)置了CATALINA_BASE變量并指向新的 tomcat-instance1。因?yàn)檫\(yùn)行tomcat的所有二進(jìn)制文件都在CATALINA_HOME/bin目錄,隨后使用startup/shutdown腳本。 ![]()
綜上所述,我們可以通過創(chuàng)建多實(shí)例目錄并修改conf/server.xml文件中的port值來運(yùn)行實(shí)例。
|
|