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的docBase目錄下,不必設置該屬性

 
dispatchersUseEncodedPaths 控制是否期望對用於獲取請求分配器的調用中的路徑進行編碼。這不僅影響Tomcat處理調用以獲取請求分配器的方式,還影響Tomcat內部生成用於獲取請求分配器的路徑的方式。如果未指定,true則使用默認值為請求分配器編碼/解碼路徑時,始終使用UTF-8。 true
failCtxIfServletStartFails

設置為:true如果任何load-on-startup> = 0的servlet自身失敗,則上下文啟動失敗。

如果未指定,則使用父主機配置中相同名稱的屬性(如果指定)。否則,將使用默認值 false

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的下面appBase或兩者都 位於 deployOnStartup並且autoDeploy為false。如果不遵循此規則,則可能導致雙重部署。

 
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  

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

 
sessionCookiePath  

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

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

true
sessionCookiePathUsesTrailingSlash   true
swallowAbortedUploads  

設置為false如果Tomcat應該閱讀中止上傳,而是中止客戶端連接任何額外要求的身體數據。在以下情況下使用此設置:

  • 請求主體的大小大於maxPostSize連接器中配置的大小
  • 已達到MultiPart上傳的大小限制
  • Servlet將響應狀態設置為413(請求實體太大)

不讀取其他數據將更快地釋放請求處理線程。不幸的是,如果大多數HTTP客戶端無法編寫完整的請求,它們將不會讀取響應。

默認值為true,因此將讀取其他數據。

請注意,如果在觸發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。請注意,無論此設置如何,都將始終執行以下附加測試:
  • 會話ID由Cookie提供
  • 會話Cookie的路徑為{@code /}

如果未指定,true將使用默認值

true
wrapperClass  org.apache.catalina.Wrapper 將用於此Context管理的servlet 實現類的Java類名稱如果未指定,將使用標准默認值。  
xmlBlockExternal  如果該標志的值是true,在解析的 web.xmlweb-fragment.xml, tomcat-web.xml*.tld*.jspx, *.tagxtagPlugins.xml此Web應用程序的文件將不會允許裝載外部實體。如果未指定,true將使用默認值 true
xmlNamespaceAware  如果這個標志的值為true,的解析 web.xmlweb-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.xmlweb-fragment.xml並且 tomcat-web.xml文件此Web應用程序將使用驗證解析器。如果 org.apache.catalina.STRICT_SERVLET_COMPLIANCE system屬性設置為 true,則此屬性 true的默認值為,否則默認值為false將此屬性設置為true會導致性能下降。   

 

 

如果該標志的值是true,在解析的 web.xmlweb-fragment.xml, tomcat-web.xml*.tld*.jspx, *.tagxtagPlugins.xml此Web應用程序的文件將不會允許裝載外部實體。如果未指定,true將使用默認值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM