摘要:每個可以創(chuàng)建一個線程池,但是可以在以及其他組件之間共享,只要那些組件配置之后支持。線程池最大活躍線程數(shù)量,默認(rèn)。如果配置了組件防止泄露的監(jiān)聽器,它會通知停止環(huán)境。如果未指定此屬性,會使用一個私有的內(nèi)部來提供線程池。
概覽
Tomcat7作為Servlet/JSP容器,它的全部行為的配置指令,包含在/conf/server.xml文件中,這個文件是一個無預(yù)定義結(jié)構(gòu)的XML文件,所有的屬性大小寫敏感。
所有的系統(tǒng)屬性變量都配置在catalina.properties文件中。
所有的配置元素分為以下主要幾類:
Server是整個配置文件的根元素。
Service代表了一組Connectors,這些Connectors關(guān)聯(lián)到同一個引擎Engine。
Connectors代表了外部客戶端請求(并接收響應(yīng))到一個特定的Service的接口。
Containers代表了處理請求和并產(chǎn)生響應(yīng)的組件。
Engine引擎為Service處理所有請求;而Host為特定的虛擬主機(jī)處理所有請求;Context為特定的web應(yīng)用處理所有請求。
Nested Components,內(nèi)置組件,代表可以內(nèi)置到Container的元素。一些元素可以內(nèi)置到任何Container中,而一些只能內(nèi)置到Context中。
ServerServer代表整個Catalina servlet容器,所以在server.xml文件中,只能有一個Server元素。
屬性說明className:這個類必須是org.apache.catalina.Server的實(shí)現(xiàn)類,如果沒有指定類名,則使用標(biāo)準(zhǔn)實(shí)現(xiàn)。
address:這是等待關(guān)閉命令的TCP/IP地址,如果沒有指定,默認(rèn)使用localhost。
port:這個端口是用于接收關(guān)閉服務(wù)的端口,可以設(shè)置為-1來禁用。
shutdown:這個命令字符串必須通過TCP/IP端口接收,才能關(guān)閉Tomcat。
Service - 一個或多個Service元素。
GlobalNamingResources - 配置Server的JNDI全局資源。
ServiceService元素是一個或多個Connector組件的結(jié)合體,這些Connector共享一個多帶帶的用于處理請求的Engine組件。一個或多個Service可能內(nèi)置在一個Server元素中。
屬性說明className:這個類必須是org.apache.catalina.Service的實(shí)現(xiàn)類。
name:Service的展示名稱,如果使用標(biāo)準(zhǔn)的Catalina組件,這個名稱會包含在日志信息中。同一個Server下的每個Service的名稱必須唯一。
Executor 線程池Executor代表一個可以在Tomcat各組件中共享的線程池。每個Connector可以創(chuàng)建一個線程池,但是可以在Connector以及其他組件之間共享,只要那些組件配置之后支持Executor。
Executor必須實(shí)現(xiàn)org.apache.catalina.Executor類。
Executor是Service的內(nèi)置元素。為了供Connector挑選,在server.xml文件中,Executor元素需要出現(xiàn)在Connector前面。
className:必須是org.apache.catalina.Executor的實(shí)現(xiàn)類,默認(rèn)值為org.apache.catalina.core.StandardThreadExecutor。
name:名稱,要求唯一。
threadPriority:Executor線程優(yōu)先級,默認(rèn)為常量Thread.NORM_PRIORITY(5)。
daemon:線程是否應(yīng)該為守護(hù)線程,默認(rèn)為true。
namePrefix:Executor創(chuàng)建的線程名稱的前綴,每個線程名稱為namePrefix+線程編號。
maxThreads:線程池最大活躍線程數(shù)量,默認(rèn)200。
minSpareThreads:一直保持存活的最低線程數(shù)量,默認(rèn)25。
maxIdleTime:線程超時時間,單位毫秒。線程閑置時間超過這個數(shù)值會被關(guān)閉,除非活躍線程數(shù)量低于或等于minSpareThreads。默認(rèn)值為60000ms(即1分鐘)。
maxQueueSize:等待執(zhí)行的任務(wù)隊(duì)列的最大值,默認(rèn)為整型最大值Integer.MAX_VALUE。
prestartminSpareThreads:是否預(yù)啟動空閑線程(minSpareThreads)。在Executor啟動時,是否啟動minSpareThreads。默認(rèn)為false。
threadRenewalDelay:如果配置了組件ThreadLocalLeakPreventionListener(防止ThreadLocal泄露的監(jiān)聽器),它會通知Executor停止Context環(huán)境。如果Context停了,池里的線程會重新創(chuàng)建。為了避免所有的線程同時重新創(chuàng)建,這個選項(xiàng)設(shè)置了任意兩個線程創(chuàng)建之間的延遲時間。單位毫秒ms,默認(rèn)1000ms。如果為負(fù)值,線程不會被重新創(chuàng)建。
Connectors Http ConnectorHttp Connector是支持HTTP/1.1協(xié)議的Connector組件。它使Catalina變成一個單機(jī)Web服務(wù)器,并且使他可以執(zhí)行Servlet和JSP。這個組件的一個特殊實(shí)例監(jiān)聽著服務(wù)器的一個特定的TCP端口。
每個傳入的請求都會申請一個線程。如果多個請求同時進(jìn)入,并且超過了當(dāng)前可用線程數(shù)量,就會創(chuàng)建更多的線程,直到達(dá)到配置的最大線程數(shù)量。如果還有更多的同時請求,這些請求會被堆積在Connector創(chuàng)建的server socket中,直到最大值(acceptCount屬性)。任何更多的請求會收到"connection refused"錯誤,直到有可用的資源。
allowTrace:是否允許TRACE HTTP方法,默認(rèn)false。
asyncTimeout:異步請求超時時間,單位毫秒,默認(rèn)10000ms(10秒)。
enableLookups:如果想使用request.getRemoteHost()方法通過DNS查找遠(yuǎn)程請求客戶端的真實(shí)的主機(jī)名,則設(shè)置為true。設(shè)置為false會跳過DNS查找,直接返回IP地址。DNS查找默認(rèn)禁用。
maxHeaderCount:一個請求允許最大的請求頭數(shù)量。如果超出限制請求會被拒絕。如果為負(fù)值,無限制。默認(rèn)值100。
maxParameterCount:GET和POST請求的參數(shù)(和值)的最大數(shù)量,超出的參數(shù)會被忽略。如果是0或者小于0,表示無限制。默認(rèn)為10000。
maxPostSize:POST請求的最大字節(jié)數(shù)。如果為負(fù),無限制。默認(rèn)2097152字節(jié)(即2Mb)。
maxSavePostSize:POST請求的最大保存/緩沖字節(jié)數(shù)。-1表示無限制,0表示禁用保存/緩沖,默認(rèn)為4096字節(jié)(4Kb)。
port:TCP端口,用于創(chuàng)建Server socket并等待進(jìn)入連接。操作系統(tǒng)允許1個服務(wù)器監(jiān)聽1個IP的1個指定端口。如果值為0,Tomcat會為這個Connector選擇一個隨機(jī)的空閑端口。
protocol:通信協(xié)議。默認(rèn)為HTTP/1.1,這個協(xié)議使用自動切換機(jī)制來選擇阻塞式基于Java的Connector或者基于APR/native的Connector。如果要使用明確的協(xié)議,而不是自動切換機(jī)制選擇的協(xié)議,可以選擇下面的值:
org.apache.coyote.http11.Http11Protocol - 阻塞 Java connector
org.apache.coyote.http11.Http11NioProtocol - 非阻塞 Java connector
org.apache.coyote.http11.Http11AprProtocol - APR/native connector.
也支持自定義的實(shí)現(xiàn)。
proxyName:如果當(dāng)前Connector使用代理配置,使用這個屬性指定Server名稱。這個Server名稱,可以調(diào)用request.getServerName()方法返回。
proxyPort:指定代理的Server端口。
redirectPort:如果當(dāng)前Connector不支持SSL請求,但是收到的請求匹配web.xml中配置的security-constraint選項(xiàng),要求使用SSL端口,那么Catalina會自動把請求轉(zhuǎn)發(fā)到這個指定端口。
scheme:給當(dāng)前協(xié)議設(shè)置一個名字,這樣可以通過request.getScheme()方法獲得協(xié)議名詞,比如給SSL協(xié)議取名HTTPS。默認(rèn)值為http。
URIEncoding:字符編碼。用于URI字節(jié)解碼,和URL %xx部分?jǐn)?shù)據(jù)的解碼。默認(rèn)為ISO-8859-1。
useIPVHosts:將該屬性設(shè)置為true會導(dǎo)致Tomcat使用收到請求的IP地址,來決定將請求發(fā)送到哪個主機(jī)。默認(rèn)false。
標(biāo)準(zhǔn)實(shí)現(xiàn)屬性除了上面列出的常見的連接器屬性,標(biāo)準(zhǔn)的HTTP連接器(BIO,NIO和APR/native)都支持以下屬性。
acceptCount:當(dāng)所有的可用線程都在使用中,傳入連接請求隊(duì)列的最大長度。當(dāng)隊(duì)列滿時,任何請求都會被拒絕。默認(rèn)100。
address:如果服務(wù)器有多個IP,這個屬性指定使用哪個IP地址用于監(jiān)聽端口。默認(rèn)使用與服務(wù)器關(guān)聯(lián)的全部IP地址。
compressableMimeType:HTTP壓縮的元數(shù)據(jù)類型,參數(shù)可以使用逗號間隔。默認(rèn)為text/html,text/xml,text/plain,text/css,text/javascript,application/javascript。
compression:為了節(jié)省服務(wù)器帶寬,Connector可以使用HTTP/1.1 GZIP壓縮。
on:允許壓縮,這回引起文本數(shù)據(jù)被壓縮。
off:禁用壓縮。
force:強(qiáng)制在所有情況下壓縮。
某整數(shù):壓縮前的最小字節(jié)量,否則不壓縮。
默認(rèn)為false。
compressionMinSize:當(dāng)compression設(shè)置為on,指定壓縮前的最小數(shù)據(jù)量。默認(rèn)為2048。
connectionTimeout:連接超時時間。-1表示無限制。默認(rèn)值60000ms(60秒)。但server.xml默認(rèn)配置為20000。
disableUploadTimeout:是否禁用上傳超時時間,開啟后,上傳數(shù)據(jù)的連接使用多帶帶的超時時間。
connectionUploadTimeout:上傳數(shù)據(jù)時,連接超時時間。
executor:指向Executor元素的引用。如果設(shè)置了這個元屬性,并且對應(yīng)的Executor存在,Connector將使用這個Executor,而其他所有線程相關(guān)屬性將被忽略。如果未指定此屬性,Connector會使用一個私有的、內(nèi)部Executor來提供線程池。
executorTerminationTimeoutMillis:在關(guān)閉Connector之前,那個私有的、內(nèi)部Executor等待請求處理線程的終結(jié)的超時時間。BIO Connector默認(rèn)值為0ms。NIO和APR/native Connector默認(rèn)值為5000ms。
keepAliveTimeout:長連接超時時間。Connector在關(guān)閉連接之前,會等待另一個HTTP請求的時間。默認(rèn)值是connectionTimeout的屬性值。-1無超時時間。
maxKeepAliveRequests:HTTP請求最大長連接數(shù)量。如果值為1,禁用長連接。設(shè)為-1,無限制。默認(rèn)值為100。
maxConnections:在任何給定的時間服務(wù)器接收并處理的最大連接數(shù)。當(dāng)這個數(shù)字已經(jīng)達(dá)到了,服務(wù)器將不會接受任何連接,直到連接的數(shù)量降到低于此值?;赼cceptCount,操作系統(tǒng)可能仍然接收連接。
maxHttpHeaderSize:請求頭和響應(yīng)頭的最大字節(jié)數(shù)。默認(rèn)8192(8Kb)
maxThreads:最多同時處理的請求的最大線程數(shù)量,這決定了同時處理請求的最大數(shù)量。默認(rèn)200。
minSpareThreads:最小空閑線程數(shù)量。默認(rèn)10。
socketBuffer:Socket輸出緩沖區(qū)大小。單位字節(jié)。-1表示禁用緩沖區(qū)。默認(rèn)值9000字節(jié)。
SSLEnabled:是否開啟SSL加密傳輸。需要配置secure和scheme屬性。
特殊功能代理支持:如果Tomcat運(yùn)行在一個代理服務(wù)器后面時,可以使用proxyName和proxyPort屬性。
SSL支持:通過設(shè)置SSLEnabled為true來開啟SSL支持。同時要設(shè)置scheme為https,設(shè)置secure為true,來傳遞正確的信息到servlet。
Containers ContextContext元素代表一個Web應(yīng)用,此Web應(yīng)用運(yùn)行在一個特定的虛擬主機(jī)中。每個Web應(yīng)用都基于WAR文件或者對應(yīng)的解壓縮文件目錄。
你可以定義多個Context元素,每個Context必須在虛擬主機(jī)內(nèi)有一個唯一的名稱,但Context路徑不需要是唯一的。一個Context名稱必須用0長度的字符串,作為虛擬主機(jī)默認(rèn)的Web應(yīng)用,用于處理其他與Context路徑不匹配的請求。
cookies:是否使用cookie,可以通過cookie鑒別session。默認(rèn)true。設(shè)置為false,則無法使用cookie完成session鑒證,然后必須依賴于URL重寫。
docBase:應(yīng)用程序文件的根目錄。如果應(yīng)用程序不在Host元素的appBase路徑下,需要設(shè)置此屬性。
path:應(yīng)用程序的訪問路徑(context path)。
reloadable:自動重新加載class和jar文件。設(shè)置為true,Catalina會監(jiān)視/WEB-INF/classes/ 和/WEB-INF/lib目錄下的變動,如果檢測到變動就會自動重新加載應(yīng)用程序。此功能非常有用但是不建議在生產(chǎn)環(huán)境使用。
特殊功能Access Log:訪問日志。可以要求Catalina為Engine、Host或Context處理的請求創(chuàng)建訪問日志,通過在這些元素中添加Valve元素,如下面這段配置:
... ...
PS:是Valve元素,不是Value。
EngineEngine代表處理與Service關(guān)聯(lián)的整個請求處理機(jī)制。它從一個或多個Connector接收并處理全部請求,并返回完整的響應(yīng)信息給Connector,最終返回到客戶端。
Engine元素必須嵌入在Service元素內(nèi)。
defaultHost:默認(rèn)的主機(jī)名,它必須指向一個Host元素的name屬性。
name:Engine的邏輯名稱,用于日志和錯誤信息。如果在一個Server中使用多個Service元素,每個Engine必須使用唯一的名稱。
HostHost代表一個虛擬主機(jī),它關(guān)聯(lián)了一個Tomcat服務(wù)器正在運(yùn)行的的網(wǎng)絡(luò)名稱(如www.xxx.com)。很多情況下,系統(tǒng)管理員會關(guān)聯(lián)多個域名到這個虛擬主機(jī)和應(yīng)用上。
Host都是嵌入到Engine元素中的,可以配置多個。在Host元素中,可以為嵌入Web應(yīng)用的Context信息,并關(guān)聯(lián)到這個虛擬主機(jī)。
每個Engine中必須有一個Host名稱來匹配Engine的defaultHost屬性,即必須有一個Host作為Engine的默認(rèn)主機(jī)。
屬性appBase:虛擬主機(jī)的應(yīng)用程序根路徑。這是個文件路徑名,包含了部署到虛擬主機(jī)的應(yīng)用程序??梢灾付橐粋€絕對路徑,或者關(guān)聯(lián)到$CATALINA_BASE目錄的相對路徑。默認(rèn)值為"webapps"。
name:一般是虛擬主機(jī)注冊到DNS的網(wǎng)絡(luò)名稱。必須有一個Host的name作為Engine的defaultHost。
Tomcatd的集群實(shí)現(xiàn)提供了session復(fù)制、Context屬性復(fù)制、和集群范圍的WAR包部署。
然而集群配置是相當(dāng)復(fù)雜的,默認(rèn)的配置對于大多數(shù)人是開箱可用的。
官網(wǎng)原文地址:http://tomcat.apache.org/tomc...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/66898.html
摘要:已成為目前開發(fā)企業(yè)應(yīng)用的最佳容器選擇之一。到安裝目錄文件中查找元素。 一、常見JavaWeb服務(wù)器 1、WebLogic:是BEA公司的產(chǎn)品、WebSphereAS:是IBM公司的產(chǎn)品、JBossAS:紅帽公司的產(chǎn)品,可以自行了解 2、Tomcat服務(wù)器: Sun公司在推出的小型Servlet/JSP調(diào)試工具的基礎(chǔ)上發(fā)展起來的一個優(yōu)秀的Servlet容器,Tomca...
摘要:是一組和的結(jié)合體。相當(dāng)于網(wǎng)絡(luò)通道,配置了通信協(xié)議。用于從外部接收請求,交給處理,然后對外返回響應(yīng)。虛擬主機(jī),配置了網(wǎng)絡(luò)名稱,應(yīng)用程序路徑等,是的組成單元。我們部署的每個就是一個,每個應(yīng)用相關(guān)的信息都配置在這個元素上。詳細(xì)說明見配置文件詳解 整理了一下Tomcat server.xml配置文件的元素概念和功能關(guān)系, Server是整個配置的根元素。 Service是一組Connecto...
閱讀 922·2021-11-25 09:43
閱讀 3741·2021-11-19 09:40
閱讀 964·2021-09-29 09:34
閱讀 1894·2021-09-26 10:21
閱讀 938·2021-09-22 15:24
閱讀 4293·2021-09-22 15:08
閱讀 3323·2021-09-07 09:58
閱讀 2831·2019-08-30 15:55