tomcat學習

Server 表示一整個servlet容器

 

Server的所有實現都 支持以下屬性:

屬性 描述
className

要使用的實現的Java類名。該類必須實現該org.apache.catalina.Server接口。如果未指定類名,則將使用標準實現。

address

此服務器等待shutdown命令的TCP / IP地址。如果未指定地址,localhost則使用。

port

此服務器等待shutdown命令的TCP / IP端口號。設置爲-1禁用關閉端口。

注意:當使用Apache Commons Daemon (在Windows上作爲服務運行或在un * xes上使用jsvc運行)啓動Tomcat時,禁用關閉端口可以正常工作。但是在使用標準shell腳本運行Tomcat時無法使用它,因爲它會阻止shutdown.bat | .sh和catalina.bat | .sh正常停止它。

shutdown

必須通過TCP / IP連接接收到指定端口號的命令字符串,以便關閉Tomcat。

 

Service表示一組connector與engine的組合,用來處理進入到容器的請求。server中可以有多個service。

 

Service的所有實現都 支持以下屬性:

屬性 描述
className

要使用的實現的Java類名。該類必須實現該org.apache.catalina.Service接口。如果未指定類名,則將使用標準實現。

name

服務的顯示名稱,如果您使用標準的Catalina組件,它將包含在日誌消息中。與特定服務器關聯的每個服務的名稱 必須是唯一的。

 

Connector 用來監聽服務器上特定端口的連接,並將連接上的請求轉發給engine處理。

屬性 描述
asyncTimeout

異步請求的默認超時(以毫秒爲單位)。如果未指定,則將此屬性設置爲Servlet規範默認值30000(30秒)。

maxHeaderCount

容器允許的請求中的最大標頭數。將拒絕包含多於指定限制的標頭的請求。值小於0表示沒有限制。如果未指定,則使用默認值100。

maxParameterCount

容器將自動解析的參數和值對的最大數量(GET加POST)。超出此限制的參數和值對將被忽略。值小於0表示沒有限制。如果未指定,則使用默認值10000。請注意,FailedRequestFilter 過濾器可用於拒絕達到限制的請求。

maxPostSize

POST的最大大小(以字節爲單位)將由容器FORM URL參數解析處理。可以通過將此屬性設置爲小於零的值來禁用該限制。如果未指定,則此屬性設置爲2097152(2兆字節)。請注意, FailedRequestFilter 可以用於拒絕超出此限制的請求。

port

連接器 將在其上創建服務器套接字並等待傳入​​連接的TCP端口號。您的操作系統將只允許一個服務器應用程序偵聽特定IP地址上的特定端口號。如果使用特殊值0(零),則Tomcat將隨機選擇一個空閒端口用於此連接器。這通常僅適用於嵌入式和測試應用程序。

protocol

設置協議以處理傳入流量。默認值是 HTTP/1.1使用自動切換機制來選擇基於Java NIO的連接器或基於APR / native的連接器。如果PATH(Windows)或LD_LIBRARY_PATH(在大多數unix系統上)環境變量包含Tomcat本機庫,並且AprLifecycleListener用於初始化APR的useAprConnector屬性設置爲 true,則將使用APR /本機連接器。如果找不到本機庫或未配置該屬性,則將使用基於Java NIO的連接器。請注意,APR /本機連接器對HTTPS的設置與Java連接器不同。
要使用顯式協議而不是依賴上述自動切換機制,可以使用以下值:
org.apache.coyote.http11.Http11NioProtocol- 非阻塞Java NIO連接器
org.apache.coyote.http11.Http11Nio2Protocol- 非阻塞Java NIO2連接器
org.apache.coyote.http11.Http11AprProtocol- APR /本機連接器。
也可以使用定製實現。
看看我們的連接器比較圖表。對於http和https,兩個Java連接器的配置完全相同。
有關APR連接器和APR特定SSL設置的更多信息,請訪問APR文檔

proxyName

如果在代理配置中使用此連接器,請配置此屬性以指定要爲其調用返回的服務器名稱request.getServerName()。有關更多信息,請參閱代理支持

proxyPort

如果在代理配置中使用此連接器,請配置此屬性以指定要爲其調用返回的服務器端口request.getServerPort()。有關更多信息,請參閱代理支持

redirectPort

如果此連接器支持非SSL請求,並且收到匹配 <security-constraint>需要SSL傳輸的請求,則Catalina將自動將請求重定向到此處指定的端口號。

URIEncoding

這指定在%xx解碼URL之後用於解碼URI字節的字符編碼。如果未指定,將使用UTF-8,除非將org.apache.catalina.STRICT_SERVLET_COMPLIANCE 系統屬性設置爲true 將使用ISO-8859-1。

屬性 描述
acceptCount

當所有可能的請求處理線程都在使用時,傳入連接請求的最大隊列長度。隊列已滿時收到的任何請求都將被拒絕。默認值爲100。

acceptorThreadCount

用於接受連接的線程數。在多CP​​U機器上增加此值,儘管您永遠不會需要更多2。此外,對於大量非保持連接的連接,您可能還希望增加此值。默認值是 1

address

對於具有多個IP地址的服務器,此屬性指定將用於偵聽指定端口的地址。默認情況下,連接器將偵聽所有本地地址。除非使用系統屬性以其他方式配置JVM,否則基於Java的連接器(NIO,NIO2)將在使用0.0.0.0或配置時偵聽IPv4和IPv6地址::。APR /本機連接器僅在配置時偵聽IPv4地址,0.0.0.0並且如果配置了 ,將偵聽IPv6地址(以及可選的IPv4地址,具體取決於ipv6onlyv6的設置)::

 

compressibleMimeType

該值是以逗號分隔的MIME類型列表,可以使用HTTP壓縮。默認值爲text/html,text/xml,text/plain,text/css,text/javascript,application/javascript 

compression

所述連接器可在試圖節省服務器的帶寬使用HTTP / 1.1 GZIP壓縮。參數的可接受值是“off”(禁用壓縮),“on”(允許壓縮,導致文本數據被壓縮),“force”(在所有情況下強制壓縮)或數字整數值(這是等效於“on”,但指定壓縮輸出之前的最小數據量)。如果內容長度未知且壓縮設置爲“on”或更具攻擊性,則輸出也將被壓縮。如果未指定,則將此屬性設置爲“off”。

注意:在使用壓縮(節省帶寬)和使用sendfile功能(節省CPU週期)之間需要權衡。如果連接器支持sendfile功能,例如NIO連接器,則使用sendfile將優先於壓縮。症狀將是靜態文件大於48 Kb將被解壓縮。您可以通過設置useSendfile連接器的屬性來關閉sendfile,如下所述,或者更改默認 或Web應用程序中DefaultServlet配置中的sendfile使用率閾值 。 conf/web.xmlweb.xml

connectionLinger

連接器使用的套接字在關閉時將停留的秒數 。默認值是-1禁用套接字延遲。

connectionTimeout

接受連接後,此連接器將等待呈現請求URI行的毫秒數。使用值-1表示沒有(即無限)超時。默認值爲60000(即60秒),但請注意Tomcat附帶的標準server.xml將其設置爲20000(即20秒)。除非將disableUploadTimeout設置爲false,否則在讀取請求正文(如果有)時也將使用此超時。

connectionUploadTimeout

指定在數據上載過程中使用的超時(以毫秒爲單位)。這僅在disableUploadTimeout設置爲時生效 false

disableUploadTimeout

此標誌允許servlet容器在數據上載期間使用不同的,通常更長的連接超時。如果未指定,則將此屬性設置爲true禁用此較長超時。

 

keepAliveTimeout

連接器在關閉連接之前等待另一個HTTP請求的毫秒數。默認值是使用爲connectionTimeout屬性設置的值 。使用值-1表示沒有(即無限)超時。

maxConnections

服務器在任何給定時間接受和處理的最大連接數。達到此數量後,服務器將接受但不處理另一個連接。此附加連接將被阻止,直到正在處理的連接數低於maxConnections,此時服務器將再次開始接受和處理新連接。請注意,一旦達到限制,操作系統仍可以根據acceptCount設置接受連接。默認值因連接器類型而異。對於NIO和NIO2,默認值爲10000。對於APR / native,默認爲8192

請注意,對於Windows上的APR / native,配置的值將減小到1024的最大倍數,小於或等於maxConnections。這是出於性能原因而完成的。
如果設置爲值-1,則禁用maxConnections功能並且不計算連接。

maxCookieCount

請求允許的最大Cookie數。值小於零表示沒有限制。如果未指定,將使用默認值200。

maxSwallowSize

Tomcat針對中止上載將吞下的最大請求正文字節數(不包括傳輸編碼開銷)。中止上傳是指Tomcat知道請求體將被忽略但客戶端仍然發送它。如果Tomcat沒有吞下身體,則客戶端不太可能看到響應。如果未指定,將使用默認值2097152(2兆字節)。值小於零表示不應強制執行限制。

maxThreads

Connector要創建的最大請求處理線程數,因此確定可以處理的最大併發請求數。如果未指定,則此屬性設置爲200.如果執行程序與此連接器關聯,則忽略此屬性,因爲連接器將使用執行程序而不是內部線程池執行任務。請注意,如果配置了執行程序,則會正確記錄爲此屬性設置的任何值,但會報告(例如,通過JMX) -1以明確表示未使用該值。

scheme

將此屬性設置爲您希望通過調用返回的協議的名稱request.getScheme()。例如,您可以https爲SSL連接器將此屬性設置爲“ ”。默認值爲“ http”。

SSLEnabled

使用此屬性可在連接器上啓用SSL通信。要在連接器上啓用SSL握手/加密/解密,請將此值設置爲true。默認值爲false。轉換此值時,true您還需要設置schemesecure屬性以將正確值request.getScheme()和 request.isSecure()值傳遞給servlet有關詳細信息,請參閱SSL支持

Context 表示一個Web應用程序,這是一個特定的虛擬主機中運行。

可以在serivce設置多個,而且還可以同一個應用具有多個版本,具體訪問哪個版本通過session信息來決定,如果沒有session則請求最新。

cookies

設置爲true如果您希望cookie用於會話標識符通信(如果客戶端支持)(這是默認設置)。設置爲false如果要禁用cookie用於會話標識符通信,並且僅依賴於應用程序的URL重寫。

crossContext

true如果希望此應用程序中的調用ServletContext.getContext()成功返回在此虛擬主機上運行的其他Web應用程序的請求調度程序,則設置爲。false在安全意識環境中設置爲(默認值),以便getContext()始終返回null

docBase

此Web應用程序的文檔庫(也稱爲上下文根)目錄,或Web應用程序歸檔文件的路徑名(如果此Web應用程序直接從WAR文件執行)。您可以爲此目錄或WAR文件指定絕對路徑名,或者指定appBase與擁有主機的目錄相關的路徑名。

除非在server.xml中定義了Context元素或者docBase不在Host的下面,否則不能設置此字段的值appBase

如果符號鏈接用於docBase,則對符號鏈接的更改僅在Tomcat重新啓動或取消部署和重新部署上下文後纔有效。上下文重新加載是不夠的。

path

此Web應用程序的上下文路徑,與每個請求URI的開頭匹配,以選擇適當的Web應用程序進行處理。特定主機中的所有上下文路徑必須是唯一的。如果指定空字符串(“”)的上下文路徑,則表示您正在爲此主機定義默認 Web應用程序,該應用程序將處理未分配給其他上下文的所有請求。

只有在server.xml中靜態定義Context時,才能使用此屬性。在所有其他情況下,將從用於.xml上下文文件或docBase的文件名推斷出該路徑。

即使在server.xml中靜態定義Context,也不能設置此屬性,除非docBase不在 Host的下面appBase或兩者都是, deployOnStartup並且autoDeploy爲false。如果未遵循此規則,則可能會導致雙重部署。

reloadable

設置爲true如果您希望Catalina監視更改類 /WEB-INF/classes//WEB-INF/lib更改,並在檢測到更改時自動重新加載Web應用程序。此功能在應用程序開發期間非常有用,但它需要大量的運行時開銷,不建議在已部署的生產應用程序上使用。這就是爲什麼此屬性的默認設置爲false。但是,您可以使用Manager Web應用程序按需觸發已部署應用程序的重新加載。

sessionCookieDomain

用於爲此上下文創建的所有會話cookie的域。如果設置,則覆蓋Web應用程序設置的任何域。如果未設置,將使用Web應用程序指定的值(如果有)。

sessionCookieName

用於爲此上下文創建的所有會話cookie的名稱。如果設置,則覆蓋Web應用程序設置的任何名稱。如果未設置,將使用Web應用程序指定的值(如果有),或者JSESSIONID如果Web應用程序未明確設置,則使用名稱。

sessionCookiePath

用於爲此上下文創建的所有會話cookie的路徑。如果設置,則覆蓋Web應用程序設置的任何路徑。如果未設置,將使用Web應用程序指定的值,或者如果Web應用程序未顯式設置,則使用上下文路徑。要將所有Web應用程序配置爲使用空路徑(這對於portlet規範實現很有用),請將此屬性設置 /爲全局CATALINA_BASE/conf/context.xml 文件。

注意:一旦使用一個Web應用程序 sessionCookiePath="/"獲取會話,同一主機中配置的任何其他Web應用程序的所有後續會話sessionCookiePath="/"將始終使用相同的會話ID。即使會話無效並創建了新會話,這也成立。這使得會話固定保護更加困難,並且需要自定義的Tomcat特定代碼來更改多個應用程序共享的會話ID。

workDir

此Context提供的臨時目錄的路徑名,供相關Web應用程序中的servlet臨時讀寫使用。該目錄將通過Servlet規範中描述的servlet上下文屬性(類型java.io.File) 對Web應用程序中的servlet可見 javax.servlet.context.tempdir。如果未指定,$CATALINA_BASE/work將提供下面的合適目錄。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章