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