[TOC]
Server
代表容器斩芭,是Tomcat示例的頂層元素乏冀,由org.apache.catalina.Server
接口定義蝶糯,不能作為任何元素的子元素。
<Server port="8005" shutdown="SHUTDOWN">
className 指定實(shí)現(xiàn)org.apache.catalina.Server接口的類(lèi).默認(rèn)值為org.apache.catalina.core.StandardServer
port 指定Tomcat監(jiān)聽(tīng)shutdown命令的端口辆沦,必帶昼捍;
shutdown 指定終止Tomcat服務(wù)器運(yùn)行時(shí),發(fā)給Tomcat服務(wù)器的shutdown監(jiān)聽(tīng)端口的字符串众辨,必帶端三;
Service
< Service name ="Catalina" >
< Service name ="Apache" >
#第一個(gè)<Service>處理所有直接由Tomcat服務(wù)器接收的web客戶(hù)請(qǐng)求
#第二個(gè)<Service>處理所有由Apahce服務(wù)器轉(zhuǎn)發(fā)過(guò)來(lái)的Web客戶(hù)請(qǐng)求```
>className 指定實(shí)現(xiàn)org.apahce.catalina.Service接口的類(lèi).默認(rèn)為org.apahce.catalina.core.StandardService
>name定義Service的名字
###Engine
每個(gè)`<Service>`元素只能有一個(gè)`<Engine>`元素,用于處理在同一個(gè)`<Service>`中所有`<Connector>`元素接受到的客戶(hù)請(qǐng)求鹃彻,由org.apache.catalina.Engine接口定義郊闯。
在`<Engine>`可以包含如下元素`<Logger>`,` <Realm>`,` <Value>`,` <Host>
````bash
<Engine name="Catalina" defaultHost="localhost">
className 指定實(shí)現(xiàn)Engine接口的類(lèi),默認(rèn)值為StandardEngine
defaultHost 指定處理客戶(hù)的默認(rèn)主機(jī)名,在
<Engine>
中的<Host>
子元素中必須定義這一主機(jī)
name 定義
<Engine>
的名字
Host
一個(gè)Engine元素可以包含多個(gè)<Host>
元素,每個(gè)<Host>
的元素定義了一個(gè)虛擬主機(jī),它包含了一個(gè)或多個(gè)Web應(yīng)用
在<Host>
元素中可以包含如下子元素<Logger>
, <Realm>
,<Value>
,<Context>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
className 指定實(shí)現(xiàn)Host接口的類(lèi).默認(rèn)值為StandardHost>appBase 指定虛擬主機(jī)的目錄,可以指定絕對(duì)目錄,也可以指定相對(duì)于
<CATALINA_HOME>
的相對(duì)目錄.如果沒(méi)有此項(xiàng),默認(rèn)為<CATALINA_HOME>
/webapps
autoDeploy 如果此項(xiàng)設(shè)為true,表示Tomcat服務(wù)處于運(yùn)行狀態(tài)時(shí),能夠監(jiān)測(cè)appBase下的文件,如果有新有web應(yīng)用加入進(jìn)來(lái),會(huì)自運(yùn)發(fā)布這個(gè)WEB應(yīng)用
unpackWARs 如果此項(xiàng)設(shè)置為true,表示把WEB應(yīng)用的WAR文件先展開(kāi)為開(kāi)放目錄結(jié)構(gòu)后再運(yùn)行.如果設(shè)為false將直接運(yùn)行為WAR文件
alias指定主機(jī)別名,可以指定多個(gè)別名
deployOnStartup如果此項(xiàng)設(shè)為true,表示Tomcat服務(wù)器啟動(dòng)時(shí)會(huì)自動(dòng)發(fā)布appBase目錄下所有的Web應(yīng)用,如果Web應(yīng)用中的server.xml沒(méi)有相應(yīng)的
<Context>
元素,將采用Tomcat默認(rèn)的Context
name定義虛擬主機(jī)的名字
Context
由Context接口定義,是使用最頻繁的元素,每個(gè)<Context>
元素代表了運(yùn)行在虛擬主機(jī)上的單個(gè)Web應(yīng)用团赁,一個(gè)<Host>
可以包含多個(gè)<Context>
元素育拨,每個(gè)web應(yīng)用有唯一的一個(gè)相對(duì)應(yīng)的Context代表web應(yīng)用自身,servlet容器為第一個(gè)web應(yīng)用創(chuàng)建一個(gè)ServletContext對(duì)象欢摄。
在<Context>元素中可以包含如下元素熬丧,<Logger>
, <Realm>
,<Resource>
, <ResourceParams>
< Context path ="/sample" docBase ="sample" debug ="0" reloadbale ="true" >
className 指定實(shí)現(xiàn)Context的類(lèi),默認(rèn)為StandardContext類(lèi)>
path 指定訪(fǎng)問(wèn)Web應(yīng)用的URL入口,注意/myweb,而不是myweb了事
reloadable 如果這個(gè)屬性設(shè)為true, Tomcat服務(wù)器在運(yùn)行狀態(tài)下會(huì)監(jiān)視在WEB-INF/classes和Web-INF/lib目錄CLASS文件的改變,如果監(jiān)視到有class文件被更新,服務(wù)器自重新加載Web應(yīng)用
cookies 指定是否通過(guò)Cookies來(lái)支持Session,默認(rèn)值為true
useNaming 指定是否支持JNDI,默認(rèn)值為了true
Connector
< Connector port ="8080" maxThread ="50" minSpareThreads ="25" maxSpareThread ="75"
enableLookups ="false" redirectPort ="8443" acceptCount ="100" debug ="0"
connectionTimeout ="20000" disableUploadTimeout ="true" />
< Connection port ="8009" enableLookups ="false" redirectPort ="8443" debug ="0" protocol ="AJP/1.3" />
#第一個(gè)Connector元素定義了一個(gè)HTTP Connector,它通過(guò)8080端口接收HTTP請(qǐng)求;
#第二個(gè)Connector元素定義了一個(gè)JD Connector,它通過(guò)8009端口接收由其它服務(wù)器轉(zhuǎn)發(fā)過(guò)來(lái)的請(qǐng)求.
Connector元素共用屬性
className 指定實(shí)現(xiàn)Connector接口的類(lèi)
enableLookups 如果設(shè)為true,表示支持域名解析,可以把IP地址解析為主機(jī)名.WEB應(yīng)用中調(diào)用request.getRemoteHost方法返回客戶(hù)機(jī)主機(jī)名.默認(rèn)值為true
redirectPort 指定轉(zhuǎn)發(fā)端口.如果當(dāng)前端口只支持non-SSL請(qǐng)求,在需要安全通信的場(chǎng)命,將把客戶(hù)請(qǐng)求轉(zhuǎn)發(fā)至SSL的redirectPort端口
HttpConnector元素的屬性
className 實(shí)現(xiàn)Connector的類(lèi)
port 設(shè)定Tcp/IP端口,默認(rèn)值為8080,如果把8080改成80,則只要輸入http://localhost 即可,因?yàn)門(mén)CP/IP的默認(rèn)端口是80
address 如果服務(wù)器有二個(gè)以上ip地址,此屬性可以設(shè)定端口監(jiān)聽(tīng)的ip地址.默認(rèn)情況下,端口會(huì)監(jiān)聽(tīng)服務(wù)器上所有的ip地址
bufferSize 設(shè)定由端口創(chuàng)建的輸入流的緩存大小.默認(rèn)值為2048byte
protocol 設(shè)定Http協(xié)議,默認(rèn)值為HTTP/1.1
maxThreads 設(shè)定在監(jiān)聽(tīng)端口的線(xiàn)程的最大數(shù)目,這個(gè)值也決定了服務(wù)器可以同時(shí)響應(yīng)客戶(hù)請(qǐng)求的最大數(shù)目.默認(rèn)值為200
acceptCount設(shè)定在監(jiān)聽(tīng)端口隊(duì)列的最大客戶(hù)請(qǐng)求數(shù)量,默認(rèn)值為10.如果隊(duì)列已滿(mǎn),客戶(hù)必須等待.
connectionTimeout定義建立客戶(hù)連接超時(shí)的時(shí)間.如果為-1,表示不限制建立客戶(hù)連接的時(shí)間
JkConnector的屬性
className實(shí)現(xiàn)Connector的類(lèi)
port設(shè)定AJP端口號(hào)>>protocol必須設(shè)定為AJP/1.3