Apache-tomcat
總體說明
官網:http://tomcat.apache.org/
版本:7.0.x
tomcat目錄結構及管件文件
Apache-Tomcat
|
+-- bin --存放tomcat在window或linux平臺下操作的腳本文件
+ |
+ +-- startup.sh --tomcat在linux下的啟動腳本
+ +-- startup.bat --tomcat在windows下的啟動腳本
+ +-- version.sh --tomcat在linux下的查看版本腳本
+ +-- version.bat --tomcat在windows下的查看版本腳本
+ +-- shutdown.sh --tomcat在linux下的關閉腳本
+ +-- shutdown.bat --tomcat在windows下的關閉腳本
+ +-- ……
+-- conf --存放tomcat所有的配置文件
+ |
+ +-- Catalina
+ +-- |
+ +-- +-- localhost --通過配置的放置進行部署
+ +-- server.xml --tomcat的主要配置文件
+ +-- web.xml --默認web應用使用到的配置,子項目將會繼承于此
+ +-- ……
+-- lib --存放tomcat所需要的以及作用于全局的jar
+-- logs --存放日志文件
+-- temp --臨時目錄
+-- webapps --應用程序部署目錄
+-- work --存放JSP文件的轉譯和編譯文件目錄
+-- LICENSE
+-- NOTICE
+-- RELEASE-NOTES
+-- RUNNING.TXT
tomcat的類的優先級順序
在tomcat部署的應用程序中,放置在webprj/WEB-INF/classes/*.class文件最優先被使用。
技巧:當我們需要覆蓋第三方或其他商業jar中的class文件時,可以通過在這個目錄中建立相同包名.類名的class進行覆蓋。
conf/server.xml的說明
典型tomcat中server.xml配置| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?xml?version='1.0'?encoding='utf-8'?> <Server?port="8005"?shutdown="SHUTDOWN"> ????<Listener?className="org.apache.catalina.startup.VersionLoggerListener"?/> ????<Listener?className="org.apache.catalina.core.AprLifecycleListener"?SSLEngine="on"?/> ????<Listener?className="org.apache.catalina.core.JasperListener"?/> ????<Listener?className="org.apache.catalina.core.JreMemoryLeakPreventionListener"?/> ????<Listener?className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"?/> ????<Listener?className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"?/> ????<GlobalNamingResources> ????????<Environment?name="maxExemptions"?value="10"?type="java.lang.Integer"?override="false"?/> ????????<Resource?auth="Container"?factory="com.alibaba.druid.pool.DruidDataSourceFactory" ????????????name="DefaultDataSource"?username="dbuser"?password="******"?maxActive="10"?maxIdle="2" ????????????maxWait="5000"?type="javax.sql.DataSource"?url="dbconnecturl"?/> ????</GlobalNamingResources> ????<Service?name="Catalina"> ????????<Executor?name="tomcatThreadPool"?namePrefix="catalina-exec-" ????????????maxThreads="150"?minSpareThreads="4"?/> ????????<Connector?port="8080"?protocol="HTTP/1.1" ????????????connectionTimeout="20000"?redirectPort="8443"?/> ????????<Connector?port="8009"?protocol="AJP/1.3"?redirectPort="8443"?/> ????????<Engine?name="Catalina"?defaultHost="localhost"> ????????????<Realm?className="org.apache.catalina.realm.LockOutRealm"> ????????????????<Realm?className="org.apache.catalina.realm.UserDatabaseRealm"?resourceName="UserDatabase"?/> ????????????</Realm> ????????????<Host?name="localhost"?appBase="webapps"?unpackWARs="true"?autoDeploy="true"> ????????????????<Valve?className="org.apache.catalina.valves.AccessLogValve" ????????????????????directory="logs"?prefix="localhost_access_log."?suffix=".txt" ????????????????????pattern="%h %l %u %t "%r" %s %b"?/> ????????????</Host> ????????</Engine> ????</Service> </Server> |
Server節點:
Server節點表示整個Tomcat Servlet容器,此節點是Server.xml的根節點,用于描述整個Tomcat Servlet容器的特點。屬性描述:| className | 否 | tomcat標準實現 | 指定Server實現java類的全限定名,此類必須實現org.apache.catalina.Server接口。tomcat標準實現:org.apache.catalina.core.StandardServer |
| address | 否 | localhost | 指定連接端口的IP地址。 |
| port | 是 | 8005 | 指定關閉tomcat的監聽端口,該端口不能被其他進程所占用。關閉該端口,可以設置為“-1”,則不能通過shutdown.sh/shutdiwn.bat的方式停止tomcat。? |
| shutdown | 是 | SHUTDOWN | 指定關閉tomcat的關閉命令,嚴格區分大小寫。 |
Listener節點:
用于處理Tomcat Server啟動或停止時特定的一些動作處理。Listener節點可以作為Server、Engine、Context、Host子節點存在,作用在子節點時相關的約束在將限制在子節點內。以下列舉tomcat自帶的幾個Listener進行說明。
- org.apache.catalina.startup.VersionLoggerListener
說明:作用是Tomcat Server在啟動時輸出的基本信息,信息包含Tomcat Server、Java、System,在catalina.out中會看到。此Listener只能用在Server節點下,并且放在Listener的首個。屬性描述:
| logArgs | 否 | true | 如果設定為true,將會在日志中輸出啟動腳本中的參數。 |
| logEnv | 否 | false | 如果設定為true,將會在日志中輸出當前的環境變量。 |
- org.apache.catalina.core.AprLifecycleListener
說明:Tomcat Server在啟動過程中檢測APR的本地庫和加載庫是否存在。此Listener只能用在Server節點下。屬性描述:
| SSLEngine | 否 | on | on:開啟SSL,將使用本地的SSL Engine off:不使用SSL |
| SSLRandomSeed | 否 | builtin | ? |
| FIPSMode | 否 | off | FIPSMode依賴于用戶自己建立的OpenSSL庫,如果取值不是off,必須要保證SSLEngine已經正常啟動。 on:需要設置OpenSSL設置為FIPS模式 enter:強制設置OpenSSL使用FIPS模式,如果OpenSSL已經是FIPS模式,將會發生錯誤。 require:需要設置OpenSSL為FIPS模式,如果OpenSSL不是FIPS模式,將會發生錯誤。 off:? |
- org.apache.catalina.core.JasperListener
說明:Tomcat Server在加載所有Web Application之前必須要先對JSP的引擎通過此Listener進行初始化。此Listener只能用在Server節點下。
- org.apache.catalina.core.JreMemoryLeakPreventionListener
說明:會隨著Tomcat Server啟動對類加載器監控是否發生內存泄露的狀況。
| appContextProtection | 否 | true <= jdk1.6 false >= jdk1.7 | 保護應用程序不會發生內存泄露,但這將會導致應用程序中的部分內容停止運行。 |
| AWTThreadProtection | 否 | false | ? |
| classesToInitialize | 否 | ? | ? |
| driverManagerProtection | 否 | ? | ? |
| gcDaemonProtection | 否 | ? | ? |
| java2DDisposerProtection | 否 | ? | ? |
| ldapPoolProtection | 否 | ? | ? |
| securityLoginConfigurationProtection | 否 | ? | ? |
| securityPolicyProtection | 否 | ? | ? |
| tokenPollerProtection | 否 | ? | ? |
| urlCacheProtection | 否 | ? | ? |
| xmlParsingProtection | 否 | ? | ? |
- org.apache.catalina.mbeans.GlobalResourcesLifecycleListener
說明:配置Tomcat Server在啟動過程中可以識別GlobalNamingResources里面配置的數據源。此LISTENER只能作用在Server節點下。
- org.apache.catalina.core.ThreadLocalLeakPreventionListener
說明:
GlobalNamingResources節點:
用于配置Tomcat Server全局的JNDI數據源。
Environment節點:
用戶配置Tomcat Server全局的變量。
| description | 否 | 無 | 環境變量的描述說明 |
| name | 是 | 無 | 環境變量的名稱, |
| override | 否 | true | 是否允許被同名的環境變量所覆蓋。 |
| type | 是 | 無 | 環境變量數據的類型,類的全限定名。 |
| value | 是 | 無 | 環境變量的取值 |
Resource節點:
配置JNDI數據源。
| auth | 否 | 無 | ? Application: Container: |
| closeMethod | 否 | 無 | 在單例資源的情況下,當資源不再被使用時將會觸發closeMethod進行資源釋放。非單例資源的情況下,此參數將被忽略。 |
| description | 否 | 無 | JNDI資源的描述。 |
| name | 是 | 無 | JNDI資源的名稱。 |
| scope | 否 | Shareable | ? Shareable: Unshareable: |
| singleton | 否 | true | 此資源是否為單例類型。如果為true,每次通過JNDI查找到的結果將會是同一個實例,如果為false每次返回的將是不同的實例。如果是javax.sql.DataSource類型的資源,此處必須使用true。 |
| type | 是 | 無 | Web應用程序中,通過JNDI查找此資源時使用的JavaClass的全限定名。 |
ResourceLink節點:
將一個全局的JNDI資源引入到一個WEB項目中。
Transaction節點:
?
Service節點:
Service節點由至少一個Connector和一個Engine節點組成,用來處理Connector節點上接收到的請求。可以由多個Service節點在Server節點內。
| className | 否 | tomcat的標準實現 org.apache.catalina.core.StandardService | service的實現類的全限定名,必須實現org.apache.catalina.Service接口。如果該屬性沒有特殊指定,將會使用tomcat標準實現。 |
| name | 是 | 無 | service的名稱,在tomcat標準實現中會在日志中輸出。如果配置多個service節點,此名稱要保證唯一性。· |
Executor節點:
可以建立統一公共的線程池,供多個Connector使用。
| className | 否 | tomcat標準實現 org.apache.catalina.core.StandardThreadExecutor | 創建Executor線程池Java類的全限定名,此類必須要實現org.apache.catalina.Executor接口。 |
| name | 是 | 無 | 線程池的引用名稱,此名稱必須是唯一的。 |
使用Tomcat標準實現(org.apache.catalina.core.StandardThreadExecutor)的其他屬性
| threadPriority | 否 | 5 | 描述當前線程的優先級。 |
| daemon | 否 | true | 描述是否為守護線程。 |
| namePrefix | 否 | ? | 線程名稱前綴。線程名稱命名規則:namePrefix+threadNumber |
| maxThreads | 否 | 200 | 線程池中最大的活動線程數。 |
| minSpareThreads | 否 | 25 | 線程池中最下的空閑線程數。 |
| maxIdleTime | 否 | 60000毫秒 | 線程空閑時常,當線程中中線程超過minSpareThreads的數量,且空閑時長達到maxIdleTime后,線程池將會銷毀此線程。 |
| maxQueueSize | 否 | Integer.MAX_VALUE | 當線程池中沒有空閑處理線程,請求將會暫存在此隊列中,等待空閑線程處理。 |
| prestartminSpareThreads | 否 | falser | tomcat啟動后是否按照minSpareThreads指定的數量創建最小線程數。 |
| threadRenewalDelay | 否 | 1000 | ? |
Connector節點:
Tomcat Server提供了2個類別的Connector的不同實現,分別是Http Connector和AJP Connector,下面將針對兩種Connector進行分別說明。
Http Connector
HTTP Connector代表了支持HTTP/1.1協議的Connector組件,使Tomcat Server成為一個能夠執行servlet和JSP頁面的獨立的Web服務器。一個HTTP Connector組件的實例監聽服務器上一個特定的TCP端口號上的連接。一個或多個這樣的連接器可以配置成一個單一Service的一部分,每個轉發到相關聯的Engine 處理請求,并創建響應。如果你要配置的Connector,用于連接到Web服務器(Apache Web Server)使用的的AJP協議。
通用配置屬性:
| allowTrace | ? | false | 指定是否開啟TRACE HTTP method。 |
| asyncTimeout | ? | 10000 | 異步請求的超時時間設置,單位:毫秒。 |
| enableLookups | ? | false | 主要是對request.getRemoteHost()方法產生影響,是否通過DNS查找主機名。 true:通過DNS查找該地址的主機名。 false:直接返回發起請求的主機IP地址。 |
| maxHeaderCount | ? | 100 | 限定一個請求頭中允許攜帶header的數量,超過該數量的請求將會被拒絕。如果設定為負數,表示不限制。 |
| maxParameterCount | ? | 10000 | 限制GET加POST請求發送參數的數量,超過該數量的請求參數將會被丟棄。如果設定為負數,表示不限制。 |
| maxPostSize | ? | 2097152 | 限制在POST時,可以通過URL傳遞參數的數據量。單位:字節。 |
| maxSavePostSize? | ? | 4096 | 將被容器在FORM或CLIENT-CERT認證中保存/緩沖的POST的最大尺寸。單位:字節。 |
| parseBodyMethods | ? | post | 以逗號分隔的HTTP方法列表,通過方法列表,等同于POST方法,request 正文將被解析成請求參數。在這里為了符合HTTP規范明確禁止HTTP方法TRACE。 |
| port | 是 | 無 | 啟動監聽的端口號。如果設置為0,Tomcat將會隨機產生一個空閑的端口提供服務。 |
| protocol | ? | HTTP/1.1 | Tomcat Server處理請求的方式 org.apache.coyote.http11.Http11Protocol:阻塞的Java連接器(bio)。 org.apache.coyote.http11.Http11NioProtocol:非阻塞的Java連接器(nio)。 org.apache.coyote.http11.Http11AprProtocol:APR/Native連接器(apr)。 |
| proxyName | ? | 無 | ? |
| proxyPort | ? | 無 | ? |
| redirectPort | ? | 無 | 如果該Connector支持SSL請求,并且該請求是SSL請求,Tomcat Server會將該請求轉向到此處指定的端口號。 |
| scheme | ? | HTTP | 設定request.getScheme()獲取到的協議名稱。 |
| secure | ? | false | ? |
| URIEncoding | ? | ISO-8859-1 | 指定URI字符集編碼。 |
| useBodyEncodingForURI | ? | false | 是否使用URI字符集編碼對queryString進行轉碼。 |
| useIPVHosts | ? | false | ? |
| xpoweredBy | ? | false | ? |
tomcat標準實現配置屬性:
| acceptCount | 否 | 100 | 當沒有空閑工作線程來處理請求時,請求將會進行暫存排隊。允許最大的排隊數量,超出改數量后,服務器將會拒絕請求。 |
| acceptorThreadCount | 否 | 1 | 用于接受連接的線程數量。在一個多CPU的機器上可以增加該值。 |
| acceptorThreadPriority | 否 | 5 | 接受連接線程的優先級。 |
| address | 否 | * | 監聽端口綁定的IP地址。默認情況是綁定所有IP地址。 |
| bindOnInit | 否 | true | ? |
| compressableMimeType | 否 | text/html,text/xml,text/plain | 可用于壓縮的MIME類型列表,多個取值的時候,使用英文半角逗號分隔。 |
| compression | 否 | off | 是否開啟HTTP/1.1的GZIP壓縮協議。on:允許壓縮,將對文本類型進行壓縮;force:強制壓縮,將對所有類型進行壓縮。 |
| compressionMinSize | 否 | 2048 | 在compression為on的情況下,指定壓縮后輸出的最小值 |
| connectionLinger | 否 | -1 | socket連接空閑時長,單位:秒。-1表示關閉socket空閑時長。 |
| connectionTimeout | 否 | 60000 | 請求連接的超時時長,單位:毫秒。-1:沒有限制。 |
| connectionUploadTimeout | 否 | ? | 上傳數據過程中的超時時長設置,單位:毫秒。此屬性只有在disableUploadTimeout=false的情況下有效。 |
| disableUploadTimeout | 否 | true | 是否限制上傳數據過程中的超時時長。取值為false時,需要設置connectionUploadTimeout的取值。 |
| executor | 否 | ? | 指定引用的executor。如果被指定,此節點上所有相關線程的設置都將被忽略,而直接使用被指定executor線程池提供的線程。 |
| executorTerminationTimeoutMillis | 否 | ? | ? |
| keepAliveTimeout | 否 | ? | 連接器在關閉之前,將等待HTTP請求的毫秒數,默認使用connectionTimeout的取值。-1標識沒有限制。 |
| maxConnections | 否 | ? | 連接器在同一時刻所能接受的最大連接數。達到此值后連接器不再接受任何連接。BIO默認使用的是maxThread取值;NIO默認取值是10000;APR的默認取值是8192。-1標識不限制最大連接數。 |
| maxExtensionSize | 否 | ? | ? |
| maxHttpHeaderSize | 否 | 8388608 | Http包中頭信息的大小,單位:字節。默認是8192KB。 |
| maxKeepAliveRequests | 否 | 100 | 一個連接中允許最大處理請求的個數。1:將會禁用長連接;-1:表示不限制; |
| maxSwallowSize | 否 | ? | ? |
| maxThreads | 否 | 200 | 用于處理請求的最大線程數。 |
| maxTrailerSize | 否 | 8192 | ? |
| minSpareThreads | 否 | 10 | 最小空閑線程數。 |
| noCompressionUserAgents | 否 | ? | ? |
| processorCache | 否 | 200 | 可以緩存的processor對象個數。-1:沒有限制。 |
| restrictedUserAgents | 否 | ? | ? |
| server | 否 | Apache-Coyote/1.1 | Http響應頭中Servet字段的取值信息。 |
| socketBuffer | 否 | 9000 | 套接字緩沖區大小,單位:字節。-1:沒有緩沖區。 |
| SSLEnabled | 否 | false | 此連接器是否使用SSL連接器傳輸數據。 |
| tcpNoDelay | 否 | true | 如果設置為true,TCP_NO_DELAY選項將被設置在服務器上的套接字上,在大多數情況下,這樣可以提高性能。 |
| threadPriority | 否 | 5 | 線程優先級。 |
| upgradeAsyncWriteBufferSize | 否 | ? | ? |
TCP Socket連接屬性配置,在BIO和NIO模式下支持配置:
| socket.rxBufSize | 否 | JVM設置 | Socket接收緩沖區(SO_RCVBUF),以字節為單位。 |
| socket.txBufSize | 否 | JVM設置 | Socket發送緩沖區(SO_SNDBUF),以字節為單位。 |
| socket.tcpNoDelay | 否 | JVM設置 | 相當于Socket的標準屬性tcpNoDelay,boolean類型取值 |
| socket.soKeepAlive | 否 | JVM設置 | Socket長連接設置(SO_KEEPALIVE),取值:boolean類型 |
| socket.ooBInline | 否 | JVM設置 | Socket OOBINLINE設置,取值:boolean類型 |
| socket.soReuseAddress | 否 | JVM設置 | Socket復用連接地址(SORESUEADDR),取值:boolean類型 |
| socket.soLingerOn | 否 | JVM設置 | Socket延時關閉選項,標準屬性中connectionLinger>=0時,此值為true,connectionLinger<0時,此值為false。取值為true時,必須設置socket.soLingerTime,否則將使用JVM設置。取值:boolean類型 |
| socket.soLingerTime | 否 | JVM設置 | Socket延時關閉時長(SO_LINGER),單位:秒。 |
| socket.soTimeout | 否 | ? | 相當于標準屬性中的connectionTimeout |
| socket.performanceConnectionTime | 否 | JVM設置 | 性能設置的第一個值,這三個值必須同時設置。 |
| socket.performanceLatency | 否 | JVM設置 | 性能設置的第二個值,這三個值必須同時設置。 |
| socket.performanceBandwidth | 否 | JVM設置 | 性能設置的第三個值,這三個值必須同時設置。 |
| socket.unlockTimeout | 否 | 250 | Socket解鎖的超時時間,單位:毫秒。 |
BIO的特殊配置項
| disableKeepAlivePercentage | 否 | 75 | 長連接失效之前被使用的處理線程的百分比,取值:0=<num<=100 |
NIO的特殊配置
| pollerThreadCount | 否 | 1 | 處理輪詢事件的線程數量,在版本7.0.27及以前版本,默認值是每個處理器1個。版本7.0.28的默認值是每個處理器1個,但不超過2個。 |
| pollerThreadPriority | 否 | 5 | 輪詢線程的優先級。 |
| selectorTimeout | 否 | 1000 | 選擇輪詢器的超時時間。單位:毫秒。 |
| useComet | 否 | true | 是否允許comet servlet。comet是基于http的長連接技術。 |
| useSendfile | 否 | true | 是否允許send file。 |
| socket.directBuffer | 否 | false | 直接使用ByteBuffers或java映射的ByteBuffers。當使用direct ByteBuffers,請確保你分配適當的內存量給直接內存空間。JDK配置如-XX:MaxDirectMemorySize=256M。 |
| socket.appReadBufSize | 否 | 8192 | 在Tomcat中每個連接的開辟連接一個讀ByteBuffer。此屬性控制這個緩沖區的大小。單位:字節。對于較低的并發,可以增加這個值以緩沖更多的數據。對于長連接數很多的情況,需要降低這個數值或者增加堆大小。 |
| socket.appWriteBufSize | 否 | 8192 | 在Tomcat中每個連接的開辟連接一個寫ByteBuffer。此屬性控制這個緩沖區的大小。單位:字節。對于較低的并發,你可以增加這個值以緩沖更多的響應數據。對于長連接數很多的情況,你需要降低這個數值或者增加堆大小。 |
| socket.bufferPool | 否 | 500 | NIO連接器使用NioChannel這個類來持有鏈接到一個套接字的元素。為了減少垃圾收集,NIO連接器緩存這些通道的對象。此值指定這個緩存的大小。默認值是500,表示緩存將持有500個?NioChannel的對象。-1表示不限制緩存大小,0表示不緩存。 |
| socket.bufferPoolSize | 否 | 1024*1024*100 | NioChannel池是基于尺寸大小,而不是基于對象數的。NioChannel的緩沖區大小=讀取緩沖區大小+寫入緩沖區大小;SecureNioChannel的緩沖區大小=應用程序讀取緩沖區大小+應用程序寫入緩沖區的大小+網絡讀取緩沖區大小+網絡寫入緩沖區的大小。單位:字節。 |
| socket.processorCache | 否 | 500 | Tomcat緩存SocketProcessor對象的最大值。默認值是500。-1表示不限制緩存大小,0表示不緩存。 |
| socket.keyCache | 否 | 500 | Tomcat緩存KeyAttachment對象的最大值。默認值是500。-1表示不限制緩存大小,0表示不緩存。 |
| socket.eventCache | 否 | 500 | Tomcat緩存PollerEvent對象的最大值。默認值是500。-1表示不限制緩存大小,0表示不緩存。 |
| selectorPool.maxSelectors | 否 | 200 | 以減少選擇器的爭用,在池中使用的選擇器最大個數。命令行值org.apache.tomcat.util.net.NioSelectorShared設置為false時,使用此選項。 |
| selectorPool.maxSpareSelectors | 否 | -1 | 以減少選擇器的爭用,在池中使用的最大備用選擇器個數。當選擇器返回到池中時,系統可以決定保留它或者讓他垃圾回收。當org.apache.tomcat.util.net.NioSelectorShared?值設置為false時,使用此選項。默認值是-1(無限制) |
| command-line-options | 否 | ? | 可用于NIO連接器的命令行選項。如果你想每個線程使用一個選擇器,將此值設置為false。當你將它設置為false,你可以通過使用selectorPool.maxSelectors屬性控制選擇器池的大小。 |
| oomParachute | 否 | 1024*1024*1 | NIO連接器實現了一個名叫parachute的OutOfMemoryError錯誤的策略。它擁有一個塊的數據作為一個字節數組。在一個OOM的情況下,這個數據塊被釋放,并報告錯誤。單位:字節。 |
APR的特殊配置
| deferAccept | 否 | ? | Socket連接上設置TCP_DEFER_ACCEPT標志。操作系統支持TCP_DEFER_ACCEPT時為true,否則為false |
| pollerSize | 否 | 8192 | 在一個給定的時間內,負責長連接輪詢的輪詢器能夠持有的線程數。額外的連接將被馬上關閉。默認值是8192,與8192個長連接數一致。 |
| pollTime | 否 | ?1000*1000 | 輪詢調用持續的時間(以微秒為單位)。在某些情況下,降低該值將略微減少潛在的連接數,但隨著增加的輪詢調用會使用更多的CPU。默認值是2000(毫秒)。 |
| sendfileSize | 否 | 1024 | |
| threadPriority | 否 | 5 | 接收器和輪詢器線程的優先級。 |
| useComet | 否 | true | 允許或禁止Comet servlet |
| useSendfile | 否 | true | 使用此屬性來啟用或禁用sendfile的能力 |
AJP Connector
AJP Connector主要使用在通過Web服務于tomcat連接時使用的一種協議,比如通過apache或iis。目前使用此場景較少,當前越來越多的情況下在使用nginx的WEB服務器作為連接中轉。此處不再進行詳細說明。
Engine節點:
是一個Servlet容器,可以包含該多個虛擬主機(通過Host實現)。主要就是將用戶請求分配給每一個虛擬主機進行處理,完成后再將結果返回給Connector。
| backgroundProcessorDelay | false | 10 | backgroundProcessor方法指定的間隔時長。取值小于0時將不再執行此方法。法主要用于重新加載 Web 應用程序的類文件、資源和掃描 Session 過期。 |
| className | false | tomcat標準實現 | Engine實現類的全限定名。如果使用自定義實現,此類必須要實現org.apache.catalina.Engine接口。 |
| defaultHost | true | ? | 指定默認的Host,取值必須是已經存在的Host節點的name。 |
| jvmRoute | false | ? | 在負載均衡時使用到的標識符,保證取值必須是集群中唯一性。 |
| name | true | ? | Engine的邏輯名稱,在輸出日志和錯誤信息時會使用此名稱。 |
| startStopThreads | false | 1 | 啟動和停止Host線程數。 0:使用Runtime.getRuntime().availableProcessors()返回值。 1:使用1個線程。 >1:使用Runtime.getRuntime().availableProcessors()+num個線程。 |
Host節點:
虛擬主機配置
| appBase | 是 | webapps | 聲明應用程序存放路徑,可以是相對路徑,也可以是絕對路徑。相對路徑是$CATALINA_HOME。 |
| xmlBase | 否 | conf/<engine_name>/<host_name> | 指定當前Host節點子節點單獨配置路徑,可以是相對路徑,也可以是絕對路徑。相對路徑是$CATALINA_HOME。 |
| createDirs | 否 | true | 啟動時是否創建appBase和xmlBase路徑,如果設置為true,當路徑創建失敗時,會在日志中進行記錄,但不影響啟動。 |
| autoDeploy | 否 | true | 是否自動部署。當設置為true,tomcat會監控appBase和xmlBase路徑下文件的變化,發生變化后會重新加載所在的應用程序。 |
| backgroundProcessorDelay | 否 | ? | 同Engine節點。如果沒有設置取值,也將會使用Engine中的取值。 |
| className | 否 | tomcat標準實現 | Host實現類的全限定名。使用自定義類時,此類必須要實現org.apache.catalina.Host接口。 |
| deployIgnore | 否 | ? | 使用表達式的方式指定在deploy時忽略的內容。在autoDeploy和deployOnStartup設置為true時生效。如:“.svn”、“*.bak”。 |
| deployOnStartup | 否 | true | 如果設置為true,tomcat啟動時將會自動加載應用程序。 |
| failCtxIfServletStartFails | 否 | false | 如果設置為true,Context中應用程序中load-on-startup>=0的Servlet如果啟動發生錯誤,將會導致所在的Context加載失敗。 |
| name | 是 | ? | 當多個Host存在時,必須要保證唯一性。 |
| startStopThreads | 否 | 1 | 同Engine節點。 |
| undeployOldVersions | 否 | false | ? |
總結
以上是生活随笔為你收集整理的Apache-tomcat的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 完整的POM文档内容
- 下一篇: 股票到底是个什么东西