hopeless-dream

导航

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将使用默认值

posted on 2020-09-06 14:55  hopeless-dream  阅读(1385)  评论(0编辑  收藏  举报