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的原因。但是,您可以使用Manager Web應用程序來觸發按需重新加載已部署的應用程序。 |
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 會導致性能下降。 |
如果該標志的值是 |