Tomcat服務(wù)器配置參考
Host容器 |
 |
概述 |
Host元素代表一個(gè)虛擬主機(jī),虛擬主機(jī)將服務(wù)器的網(wǎng)絡(luò)名(比如www.mycompany.com)和運(yùn)行Catalinade的某個(gè)特定服務(wù)器聯(lián)系起來(lái)。為了生效,網(wǎng)絡(luò)名稱(chēng)必須在管理你所在的Internet域的DNS服務(wù)器進(jìn)行登記---請(qǐng)聯(lián)系你的網(wǎng)絡(luò)管理員。
在許多情況下,系統(tǒng)管理員可能希望為同一個(gè)虛擬主機(jī)或應(yīng)用關(guān)聯(lián)多個(gè)網(wǎng)絡(luò)名稱(chēng)(比如www.mycompany.com和company.com)。這可以利用下面討論的Host Name Alias特征來(lái)完成。
在Engine元素中可以嵌套一個(gè)或多個(gè)Host元素。在Host元素中可以嵌套context元素。在與每個(gè)Engine相關(guān)聯(lián)的所有Host中,必須有一個(gè)Host的名稱(chēng)與Engine的defaultHost屬性匹配。
以下的描述使用變量$CATALINA_HOME來(lái)指Tomcat 5安裝的目錄。大多數(shù)的相對(duì)路徑都是以該目錄為基準(zhǔn)。但是,通過(guò)設(shè)置CATALINA_BASE目錄,可以運(yùn)行多個(gè)Tomcat 5實(shí)例,這時(shí)你應(yīng)該使用$CATALINA_BASE來(lái)作為目錄基準(zhǔn),而不是使用$CATALINA_HOME。 |
屬性 |
公共屬性 |
所有Host的實(shí)現(xiàn)必須支持如下屬性:
屬性 |
描述 |
appBase |
虛擬主機(jī)的Applicaton Base目錄。這是在該虛擬主機(jī)上發(fā)布web應(yīng)用的目錄路徑。你可以指定絕對(duì)路徑,或者使用相對(duì)于$CATALINA_HOME 的路徑。有關(guān)web應(yīng)用的自動(dòng)識(shí)別和發(fā)布的更多信息,請(qǐng)參考應(yīng)用自動(dòng)發(fā)布。 |
autoDeploy |
這個(gè)標(biāo)志表示,在Tomcat運(yùn)行的時(shí)候,放到appBase目錄下的新的web應(yīng)用是否自動(dòng)發(fā)布。缺省為true。這方面的更多信息參考應(yīng)用自動(dòng)發(fā)布 |
backgroundProcessorDelay |
這個(gè) 值代表在該host及其子容器(包括所有的wrappers)上調(diào)用backgroundProcess方法的延時(shí),以秒為單位。如果延時(shí)值非負(fù),子容器不會(huì)被調(diào)用,這意味著子容器使用自己的處理線程。如果該值為正,會(huì)創(chuàng)建一個(gè)新的線程。在等待指定的時(shí)間以后,該線程在Host及其子容器上調(diào)用backgroundProcess方法。Host使用后臺(tái)處理進(jìn)行與web應(yīng)用實(shí)時(shí)發(fā)布有關(guān)的操作。如果沒(méi)有指定,缺省值是-1,說(shuō)明host依賴(lài)其所屬的Engine的后臺(tái)處理。
|
className |
實(shí)現(xiàn)的Java類(lèi)名。該類(lèi)必須實(shí)現(xiàn)org.apache.catalina.Host接口。如果沒(méi)有指定,使用標(biāo)準(zhǔn)實(shí)現(xiàn)(在下面定義) |
deployOnStartup |
這個(gè)標(biāo)志表明這個(gè)host的web應(yīng)用是否由host configurator 自動(dòng)發(fā)布。缺省為true。這方面的更多信息參考自動(dòng)應(yīng)用發(fā)布。 |
name |
虛擬主機(jī)的網(wǎng)絡(luò)名稱(chēng),也就是在DNS服務(wù)器上注冊(cè)的名稱(chēng)。嵌套在Engine的所有Host中,必須有一個(gè)Host的名字與Engine的defaultHost屬性相同。如果想為同一個(gè)虛擬主機(jī)指定多個(gè)網(wǎng)絡(luò)名稱(chēng),參考主機(jī)名別名。
| |
標(biāo)準(zhǔn)實(shí)現(xiàn) |
Host的標(biāo)準(zhǔn)實(shí)現(xiàn)是org.apache.catalina.core.StandardHost。它還支持如下的附加屬性
屬性 |
描述 |
debug |
與Engine相關(guān)聯(lián)的Logger的調(diào)試信息的詳細(xì)程度。數(shù)字越大,輸出越詳細(xì)。如果沒(méi)有指定,缺省值為0。 |
deployXML |
如果不想使用Context XML配置文件來(lái)發(fā)布web應(yīng)用,設(shè)為false。同時(shí)也失去了利用manager應(yīng)用程序安裝web應(yīng)用或者“.war”文件的能力(這些web應(yīng)用或.war文件不在Host的配置基準(zhǔn)目錄$CATALINA_HOME/conf/[engine_name]/[host_name] 下面)
web應(yīng)用使用catalina的安全許可發(fā)布,如果需要讓不可信的用戶(hù)管理web應(yīng)用,這個(gè)值可以設(shè)為false。缺省為true。 |
errorReportValveClass |
Host使用的錯(cuò)誤報(bào)告valve的Java類(lèi)名。這個(gè)valve的責(zé)任是輸出錯(cuò)誤報(bào)告。設(shè)置這個(gè)值可以定制Tomcat產(chǎn)生的錯(cuò)誤頁(yè)面的格式。這個(gè)類(lèi)必須實(shí)現(xiàn)org.apache.catalina.Valve接口。如果沒(méi)有指定,使用缺省值
og.apache.catalina.valvees.ErrorReportValve. |
unpackWARs |
如果希望將位于appBase目錄下的WAR文件解壓縮成對(duì)應(yīng)的目錄結(jié)構(gòu),設(shè)為true。如果希望直接從WAR文件運(yùn)行web應(yīng)用,設(shè)為false。更多信息參考應(yīng)用自動(dòng)發(fā)布。 |
workDir |
Host的web應(yīng)用使用的臨時(shí)目錄的路徑。每個(gè)應(yīng)用都有自己的子目錄,用于臨時(shí)的讀寫(xiě)。如果在Context中設(shè)置了workDir屬性,它將會(huì)覆蓋Host的workDir屬性。如Servlet Specification中所述,通過(guò)servlet context的屬性javax.servlet.context.tempdir,這個(gè)目錄可以被servlet使用。如果沒(méi)有指定,使用$CATALINA_HOME/work 下面的合適的目錄。 | | |
嵌套組件 |
可以在Host元素中嵌套一個(gè)或者多個(gè)Context元素,每個(gè)Context元素代表這個(gè)虛擬主機(jī)下的一個(gè)不同的web應(yīng)用。同時(shí),你可以嵌套一個(gè)DefaultContext元素,用來(lái)定義后續(xù)發(fā)布的web應(yīng)用的缺省值
可以在Host元素中選擇嵌套一個(gè)DefaultContext元素,用來(lái)定義自動(dòng)發(fā)布的web應(yīng)用的缺省特性。
下列元素可以嵌套在Host元素中,但至多只能嵌套一個(gè)實(shí)例:
- Logger - 配置一個(gè)logger,用來(lái)接收和處理Host的所有日志消息,以及這個(gè)Host的所有Context的日志消息(除非被低一級(jí)的Logger配置覆蓋)
- Realm -配置一個(gè)realm,Realm的用戶(hù)數(shù)據(jù)庫(kù)以及用戶(hù)角色被這個(gè)Host的所有Context共享(除非被低一級(jí)的Realm配置覆蓋)
|
專(zhuān)有特征 |
應(yīng)用自動(dòng)發(fā)布 |
如果使用標(biāo)準(zhǔn)的Host實(shí)現(xiàn),當(dāng)Catalina第一次啟動(dòng)時(shí),如果deployOnStartup屬性為true,tomcat會(huì)自動(dòng)采取如下的步驟:
- 假定
$CATALINA_HOME/conf/[engine_name]/[host_name] 目錄中的任何XML文件都包含一個(gè)Context元素(以及它的相關(guān)的子元素),通常情況下,這個(gè)<Context>的docBase屬性指向一個(gè)web應(yīng)用目錄的絕對(duì)路徑,或者是WAR文件的絕對(duì)路徑。
- 如果WAR文件對(duì)應(yīng)的目錄不存在,則這個(gè)WAR文件會(huì)被自動(dòng)展開(kāi),除非unpackWARs屬性設(shè)為false。在重新發(fā)布更新后的WAR文件時(shí),重新啟動(dòng)Tomcat之前一定要?jiǎng)h除展開(kāi)后的目錄,這樣更新后的WAR文件才會(huì)被重新展開(kāi)(如果使能了auto deployer,它會(huì)自動(dòng)完成這項(xiàng)工作)
- application base目錄下的任何子目錄,如果包含/WEB-INF/web.xml文件,Tomcat認(rèn)為這個(gè)一個(gè)展開(kāi)后的web應(yīng)用,會(huì)為這個(gè)目錄自動(dòng)產(chǎn)生一個(gè)Context元素,即使這個(gè)目錄沒(méi)有在conf/server.xml文件中出現(xiàn)。產(chǎn)生的Context會(huì)使用DefaultContext中的屬性來(lái)配置。自動(dòng)產(chǎn)生的Context的context路徑是“/”后面跟上目錄名,除非目錄名是ROOT,這種情況下context路徑是空字符串(“”);
除了啟動(dòng)時(shí)候的自動(dòng)發(fā)布以外,在Tomcat運(yùn)行的時(shí)候,當(dāng)新的XML 配置文件,WAR文件或者子目錄(包含新的web應(yīng)用)放到appBase目錄下,或者當(dāng)XML配置文件放到$CATALINA_HOME/conf/[engine_name]/[host_name]目錄 )的時(shí)候,該web應(yīng)用被自動(dòng)發(fā)布。auto deployer也負(fù)責(zé)跟蹤web應(yīng)用的如下變化:
- 如果更新了WEB-INF/web.xml文件,會(huì)觸發(fā)web應(yīng)用的重載;
- 如果WAR文件被更新,并且WAR文件已經(jīng)展開(kāi),首先刪除展開(kāi)的web應(yīng)用,然后發(fā)布更新的WAR文件;
- 如果XML配置文件被更新,首先刪除該應(yīng)用(但是不刪除任何展開(kāi)以后的目錄),然后發(fā)布相關(guān)的web應(yīng)用
|
主機(jī)名別名 |
在許多服務(wù)器環(huán)境中,多個(gè)網(wǎng)絡(luò)名稱(chēng)可能指向同一個(gè)IP地址(比如,www.mycompany.com和company.com都指向192.168.1.1)。正常情況下,每個(gè)網(wǎng)絡(luò)名稱(chēng)應(yīng)該在conf/server.xml中對(duì)應(yīng)一個(gè)Host元素,每個(gè)Host元素有自己的一套web應(yīng)用。
但是,有些情況下,可能希望兩個(gè)或者更多網(wǎng)絡(luò)名稱(chēng)解析到同一個(gè)虛擬主機(jī)上,運(yùn)行相同的一套web應(yīng)用。這種情況的典型用途是公司網(wǎng)站。用戶(hù)可以使用www.mycompany.com和company.com訪問(wèn)同樣的內(nèi)容和應(yīng)用。
通過(guò)在Host元素中嵌套一個(gè)或者多個(gè)Alias元素,可以完成上述功能。
 |
 |
 |
 |
<Host name="www.mycompany.com" ...>
...
<Alias>mycompany.com</Alias>
...
</Host>
|
 |
 |
 |
 |
為了使這個(gè)策略生效,所有的網(wǎng)絡(luò)名稱(chēng)必須在DNS服務(wù)器登記,指向運(yùn)行Catalina實(shí)例的同一臺(tái)計(jì)算機(jī)。
|
生命期Listeners |
如果一個(gè)Java對(duì)象需要知道Context什么時(shí)候啟動(dòng),什么時(shí)候停止,可以在這個(gè)對(duì)象中嵌套一個(gè)Listener元素。該Listener元素必須實(shí)現(xiàn)了org.apache.catalina.LifecycleListener接口,在發(fā)生對(duì)應(yīng)的生命期事件的時(shí)候,通知該Listener。可以按照如下的格式配置這樣的Listener:
|
|
posted on 2006-02-16 17:05
java之海 閱讀(3044)
評(píng)論(0) 編輯 收藏