tomcat server.xml配置屬性
Engine配置屬性
屬性 | 描述 | 預設值 |
backgroundProcessorDelay |
當前Engine及其子容器backgroundProcessor方法執行的延遲時間,包括所有Host和Context,單位s。 如果子容器屬性backgroundProcessorDelay的取值為非負數,將不執行。 屬性為正數時,tomcat將會建立一個後臺執行緒,等待執行時間後,該執行緒將執行當前Engine及其所有子容器的backgroundProcessorDelay方法 |
10 |
className | 例項化Engine時使用的類名。指定類必須實現org.apache.catalina.Engine介面。不指定則使用org.apache.catalina.core.StandardEngine | |
defaultHost | 預設Host名稱,當根據請求無法找到host時,使用預設Host處理 | |
jvmRoute | 用於在負載均衡場景下啟用粘性會話,該標識在整個叢集所有tomcat中唯一,而且會附加到生成的會話識別符號。通過此值,前端代理可以將某個會話定向到同一個Tomcat例項 | |
name | Engine的邏輯名稱。當同一個server中存在多個service時,engine名必須唯一 | |
startStopThreads |
Engine用於啟動Host的執行緒數。如果設定為0,將使用Runtime.getRuntime().availableProcessors()的值。 如果設定為負值,則使用Runtime.getRuntime().availableProcessors()+startStopThreads,如果設定結果小於1,取值為1 |
1 |
Host配置屬性
屬性 | 描述 | 預設值 |
appBase | 當前Host的基礎目錄,即web應用的目錄路徑。可以是絕對路徑,也可以是相對路徑(相對$CATALINA_BASE) | webapps |
xmlBase |
當前Host的XML基礎目錄,即Host上的Context描述檔案的路徑。可以是絕對路徑,也可以是相對路徑(相對$CATALINA_BASE) 預設為conf/<Engine名稱>/<Host名稱> |
|
createDirs | 如果設定為true,Tomcat將在啟動階段嘗試建立appBase和xmlBase設定的目錄,如果建立失敗,會列印錯誤資訊,但不會終止啟動 | true |
autoDeploy | 用於設定tomcat是否在執行時定期檢查新增或存在更新的web應用。如果為true,tomcat定期檢測appBase和xmlBase目錄,部署發現的新的web應用或Context檔案。存在更新的web應用或者Context檔案將處罰web應用重新載入 | true |
backgroundProcessorDelay |
當前Host及其子容器backgroundProcess()方法執行的延遲時間,包括所有Context,單位s。 如果子容器屬性backgroundProcessorDelay的取值為非負數,將不執行。 屬性為正數時,tomcat將會建立一個後臺執行緒,等待執行時間後,該執行緒將執行當前Host及其所有子容器的backgroundProcessorDelay方法 |
-1 |
className | 例項化Host是,使用的實現類類名。指定類必須實現org.apache.catalina.Host介面 | |
deployIgnore |
用於確定tomcat自動部署以及啟動部署時忽略目錄的正則表示式。通過此配置,可以將tomcat配置納入版本控制系統 例如,部署時忽略appBase下的.svn或者CVS目錄。該正則表示式相對於appBase目錄,並且匹配整個檔案或目錄名。例如,foo匹配檔名為foo的檔案或目錄,但不匹配foo.war,foobar等 |
|
deployOnStartup | 用於標識當Tomcat啟動時,是否自動部署Host下的web應用 | true |
name | 當前Host的網路名稱。Tomcat會自將Host名轉換為小寫。 | |
startStopThreads |
Host用於啟動Context的執行緒數。如果設定為0,將使用Runtime.getRuntime().availableProcessors()的值。 如果設定為負值,則使用Runtime.getRuntime().availableProcessors()+startStopThreads,如果設定結果小於1,取值為1 |
1 |
undeployOldVersions | 用於確定Tomcat在自動部署過程中是否檢查web應用的舊版本。如果發現舊版本,則移除。當autoDeploy為true時使用 | false |
copyXML |
設定為true,在web應用部署是,tomcat會將內嵌在應用中的Context描述檔案(/META-INF/context.xml)複製到xmlBase目錄下。以後再啟動時,優先使用複製的Context檔案,即使web應用中的描述檔案更新。 如果deployXML為false,那麼該屬性不生效 |
|
deployXML |
設定為false,Tomcat不會轉換web應用內嵌的Context檔案(/META-INF/context.xml)。在安全環境下需要設定為false,以避免web應用影響容器配置、 | false |
errorReportValueClass | ||
unpackWARs | 設定為true,Context在啟動時會將appBase目錄下的WAR包解壓。設定為false,將直接從WAR檔案中啟動web應用。Host的appBase目錄外的WAR檔案不會解壓 | true |
workDir |
當前Host下web應用使用的臨時目錄。每個應用擁有自己的子目錄用於臨時讀寫。如果設定了Context的workDir屬性,Host的配置將被覆蓋。 如果不指定,每個web應用將使用$CATALINA_BASE/work/{Engine名稱}/{Host名稱}/{Context名稱} |
Context配置
屬性 | 描述 | 預設值 | |
allowCasualMultipartParsing | 如果設定為true,Tomcat在web應用呼叫HttpServletRequest.getPart *或HttpServletRequest.getParameter *時自動轉換multipart / form-data請求,即使目標servlet沒有被@MultipartConfig註釋 | false | |
backgroundProcessorDelay |
當前Context及其子容器(包括wrapper)後臺執行緒執行的延遲時間,單位秒。執行是,將忽略延遲時間為正數的子元件 將此值設定為正值將導致產生執行緒。等待指定的時間後,執行緒將在此主機及其所有子容器上呼叫backgroundProcess方法 則此屬性的預設值為-1,這意味著上下文將依賴於其父主機的後臺處理執行緒。 |
-1 | |
className | 例項化Context時,使用的類。此類必須實現org.apache.catalina.Context 介面 |
||
containerSciFilter | 使用正則表示式過濾當前contexttigong de ServletContainerInitializer類,使之不能用於當前Context | ||
cookies | 是否要將cookie用於快取當前Context的會話標識,false為不快取 | true | |
crossContext | 設定為true,返回同Host下指定名稱的其他Context。設定為false,該方法始終返回為空。預設false,避免將請求分發給其他Context,做到安全防護 |
false | |
docBase |
web應用程式的Document Base(也稱為Context Root)目錄,或Web應用程式存檔檔案的路徑名 除非在server.xml中定義了Context元素,或者web應用的部署路徑不再Host的 |
||
dispatchersUseEncodedPaths | 控制是否期望對用於獲取請求分配器的呼叫中的路徑進行編碼。這不僅影響Tomcat處理呼叫以獲取請求分配器的方式,還影響Tomcat內部生成用於獲取請求分配器的路徑的方式。如果未指定,true 則使用預設值。為請求分配器編碼/解碼路徑時,始終使用UTF-8。 |
true | |
failCtxIfServletStartFails |
設定為: 如果未指定,則使用父主機配置中相同名稱的屬性(如果指定)。否則,將使用預設值 |
false | |
fireRequestListenersOnForwards | 設定為true 在Tomcat轉發請求時觸發所有已配置的ServletRequestListeners。這主要供使用ServletRequestListeners為請求配置必要環境的CDI框架的使用者使用。如果未指定,false 則使用預設值。 |
false | |
logEffectiveWebXml | 設定為true 是否要在應用程式啟動時記錄用於Web應用程式的有效web.xml(在INFO級別)。有效的web.xml是將應用程式的web.xml與Tomcat配置的任何預設值以及發現的任何web-fragment.xml檔案和註釋結合在一起的結果。如果未指定,false 則使用預設值。 |
false | |
mapperContextRootRedirectEnabled | 如果啟用,則對Web應用程式上下文根的請求將在必要時由Mapper而不是預設Servlet重定向(新增斜槓)。這更有效,但具有確認上下文路徑存在的副作用。如果未指定,true 則使用預設值。 |
false | |
override | 設定為true 忽略全域性或主機預設上下文中的任何設定。預設情況下,將使用來自預設上下文的設定,但可以通過為上下文顯式設定相同的屬性來覆蓋這些設定。 |
false | |
path |
此Web應用程式的上下文路徑與每個請求URI的開頭匹配,以選擇適當的Web應用程式進行處理。特定主機內的所有上下文路徑必須唯一。如果您指定一個空字串(“”)的上下文路徑,那麼您正在為此主機定義預設的Web應用程式,它將處理所有未分配給其他上下文的請求。 僅當在server.xml中靜態定義上下文時,才必須使用此屬性。在所有其他情況下,將從用於.xml上下文檔案或docBase的檔名中推斷出路徑。 即使在server.xml中靜態定義Context時,也不能設定此屬性,除非docBase不在Host的下面 |
||
preemptiveAuthentication | 當設定為true 且使用者提供不受安全約束保護的資源的憑據時,如果身份驗證器支援搶佔式身份驗證(Tomcat附帶的標準身份驗證器則支援),則將處理使用者的憑據。如果未指定,false 則使用預設值。 |
false | |
privileged | 設定為true 允許此上下文使用容器servlet,例如管理器servlet。使用該privileged 屬性會將上下文的父類載入器更改為伺服器類載入器,而不是共享類載入器。請注意,在預設安裝中,“公共”類載入器用於“伺服器”和“共享”類載入器。 |
false | |
reloadable | 設定為true ,如果你想卡塔利娜監測類/WEB-INF/classes/ 和/WEB-INF/lib 更改,並自動如果檢測到變化重新載入Web應用程式。此功能在應用程式開發期間非常有用,但是它需要大量的執行時開銷,因此不建議在已部署的生產應用程式上使用。這就是為什麼此屬性的預設設定為false的原因。但是,您可以使用ManagerWeb應用程式來觸發按需重新載入已部署的應用程式。 |
false | |
resourceOnlyServlets | |||
sendRedirectBody | 如果為true ,則重定向響應將包括一個簡短的響應主體,該主體包含RFC 2616建議的重定向詳細資訊。由於包括響應主體可能會對某些應用程式元件(例如壓縮過濾器)造成問題,因此預設情況下將其禁用。 |
false | |
sessionCookieDomain | 用於為此上下文建立的所有會話cookie的域。如果設定,則它將覆蓋Web應用程式設定的任何域。如果未設定,則將使用Web應用程式指定的值(如果有)。 | ||
sessionCookieName |
|
||
sessionCookiePath |
用於為此上下文建立的所有會話cookie的路徑。如果設定,它將覆蓋Web應用程式設定的任何路徑。如果未設定,則將使用由Web應用程式指定的值,如果Web應用程式未顯式設定一個,則將使用上下文路徑。要將所有Web應用程式配置為使用空路徑(這對於Portlet規範實現很有用),請 注意:使用的一個Web應用程式 |
true | |
sessionCookiePathUsesTrailingSlash | true | ||
swallowAbortedUploads |
設定為false如果Tomcat應該不閱讀中止上傳,而是中止客戶端連線任何額外要求的身體資料。在以下情況下使用此設定:
不讀取其他資料將更快地釋放請求處理執行緒。不幸的是,如果大多數HTTP客戶端無法編寫完整的請求,它們將不會讀取響應。 預設值為 請注意,如果在觸發5xx響應的請求處理過程中發生錯誤,則寫入錯誤響應後,所有未讀的請求資料將始終被忽略,並且客戶端連線將被關閉。 |
false | |
tldValidation | 如果此標誌的值為true ,則在上下文啟動時將對TLD檔案進行XML驗證。如果org.apache.catalina.STRICT_SERVLET_COMPLIANCE system屬性設定為true ,則此屬性true 的預設值為,否則預設值為false 。將此屬性設定為true 會導致效能下降。 |
||
useHttpOnly | 是否應在會話cookie上設定HttpOnly標誌,以防止客戶端指令碼訪問會話ID?預設為true 。 |
true | |
useRelativeRedirects | 控制通過呼叫生成的HTTP 1.1和更高版本的位置標頭javax.servlet.http.HttpServletResponse#sendRedirect(String) 將使用相對還是絕對重定向。相對重定向更有效,但可能不適用於更改上下文路徑的反向代理。應該注意的是,由於它產生了多個問題,因此不建議使用反向代理來更改上下文路徑。絕對重定向應與更改上下文路徑的反向代理一起使用,但是org.apache.catalina.filters.RemoteIpFilter 如果過濾器正在更改方案和/或埠,則可能導致問題。如果org.apache.catalina.STRICT_SERVLET_COMPLIANCE system屬性設定為true ,則此屬性false 的預設值為,否則預設值為true 。 |
||
validateClientProvidedNewSessionId | 當客戶端為新會話提供ID時,此屬性控制該ID是否得到驗證。使用客戶端提供的會話ID的唯一用例是在多個Web應用程式之間具有通用的會話ID。因此,任何客戶端提供的會話ID應該已經存在於另一個Web應用程式中。如果啟用此檢查,則僅當會話ID存在於當前主機的至少一個其他Web應用程式中時,才使用客戶端提供的會話ID。請注意,無論此設定如何,都將始終執行以下附加測試:
如果未指定, |
true | |
wrapperClass | org.apache.catalina.Wrapper 將用於此Context管理的servlet的實現類的Java類名稱。如果未指定,將使用標準預設值。 |
||
xmlBlockExternal | 如果該標誌的值是true ,在解析的web.xml ,web-fragment.xml ,tomcat-web.xml ,*.tld ,*.jspx ,*.tagx 和tagPlugins.xml 此Web應用程式的檔案將不會允許裝載外部實體。如果未指定,true 將使用預設值 |
true | |
xmlNamespaceAware | 如果這個標誌的值為true ,的解析web.xml ,web-fragment.xml 並且tomcat-web.xml 檔案此Web應用程式會識別名稱空間。請注意*.tld ,*.jspx 和*.tagx 始終使用可識別名稱空間的解析器來解析檔案,並且tagPlugins.xml 永遠不會使用可識別名稱空間的解析器來解析檔案(如果有)。還要注意,如果開啟此標誌,則可能也應該開啟xmlValidation 。如果org.apache.catalina.STRICT_SERVLET_COMPLIANCE system屬性設定為true ,則此屬性true 的預設值為,否則預設值為false 。將此屬性設定為true 會導致效能下降。 |
||
xmlValidation | 如果這個標誌的值為true ,的解析web.xml ,web-fragment.xml 並且tomcat-web.xml 檔案此Web應用程式將使用驗證解析器。如果org.apache.catalina.STRICT_SERVLET_COMPLIANCE system屬性設定為true ,則此屬性true 的預設值為,否則預設值為false 。將此屬性設定為true 會導致效能下降。 |
如果該標誌的值是 |