Tomcat 常用配置
Server.xml 包含以下元素
Server
<Server>
是配置文件的顶层元素且唯一,它的属性代表整个Servlet容器的特征。
Server支持以下通用属性:
属性 | 描述 |
---|---|
className | 实现类的Java类名。该类必须实现org.apache.catalina.Server 接口。如果未指定类名,则将使用标准实现。 |
address | 服务器等待shutdown命令的TCP / IP地址。如果未指定地址,则使用localhost 。 |
port | 服务器等待shutdown命令的TCP / IP端口号。设置为-1 禁用关闭端口。 |
portOffset | 端口偏移量。它必须是非负整数。如果未指定,则使用默认值0 。 |
shutdown | 指定通过TCP / IP连接接收到指定端口的命令字符串,用于关闭Tomcat。 |
utilityThreads | 各种实用任务的线程数,包括重复执行的任务。 |
service
service
由共享的请求处理引擎(Engine)和一个或多个连接器(Connector)组成。
Service支持以下属性:
属性 | 描述 |
---|---|
className | 实现类的Java类名。该类必须实现org.apache.catalina.Service 接口。如果未指定类名,则将使用标准实现。 |
name | Service 的名称 |
Executor
Executor表示tomcat组件之间共享的线程池,Executor必须实现 org.apache.catalina.Executor
接口,Executor是Service元素的内嵌元素,为了可以被connectors获取,所以必须写在Connector元素前。
Executor支持以下属性:
属性 | 描述 |
---|---|
className | 实现的类。实现必须实现 org.apache.catalina.Executor 接口。此接口确保可以通过其name 属性引用对象并实现Lifecycle,以便可以使用容器启动和停止对象。className的默认值是org.apache.catalina.core.StandardThreadExecutor |
name | 用于在server.xml中的其他位置引用该线程池的名称。名称是必需的,必须是唯一的。 |
默认实现支持以下属性:
属性 | 描述 |
---|---|
threadPriority | (int)Executor 中线程的线程优先级,默认为 5 (Thread.NORM_PRIORITY 常量的值) |
daemon | (boolean)线程是否应该是守护线程,默认为 true |
namePrefix | (String)执行程序创建的每个线程的名称前缀。单个线程的线程名称将是namePrefix+threadNumber |
maxThreads | (int)线程池中活动线程的最大数量,默认为 200 |
minSpareThreads | (int)始终保持活动状态的最小线程数,默认为 25 |
maxIdleTime | (int)空闲线程生存时间。默认值为60000 (1分钟) |
maxQueueSize | (int)等待执行的任务队列的最大数量。默认值是Integer.MAX_VALUE |
prestartminSpareThreads | (boolean)是否应该在启动Executor时启动minSpareThreads数量的线程,默认值为 false |
threadRenewalDelay | (long)如果配置了ThreadLocalLeakPreventionListener ,会监听一个请求是否停止,如果停止,池中的线程将被更新。为避免同时更新所有线程,此选项用于设置任意2个线程更新之间的延迟。以ms为单位,默认值为1000 ms。如果值为负,则不会更新线程。 |
Connector
Connector分为三Http Connector、AJP Connector,Http连接器支持http1.1或者http2,这里列举常用的Http Connector属性,其余属性可通过官方文档查阅。
部分通用属性
属性 | 描述 |
---|---|
asyncTimeout | 异步请求的默认超时时间(以毫秒为单位)。如果未指定,则将此属性设置为Servlet规范默认值30000(30秒)。 |
redirectPort | 如果此连接器支持非SSL请求,并且收到需要SSL传输的请求,则Catalina将自动将请求重定向到此处指定的端口号。 |
URIEncoding | URI字符编码格式。如果未指定,将使用UTF-8。 |
minProcessors | 服务器启动时创建的处理请求的线程数(处理请求的最小线程数)。 |
maxProcessors | 最大可以创建的处理请求的线程数。 |
Context
Context代表一个web应用程序,Context中包含一个或多个Servlet,当请求被分配到当前Context时,Context将选择一个匹配的Servlet来进行处理(使用servlet-mapping中的url-pattern进行匹配)
常见通用属性
属性 | 描述 |
---|---|
cookies | 是否支持cookie,如果为true,则支持cookie。 |
docBase | 项目Root目录地址。 |
override | 当设置为true时,忽略全局或者host的默认设置。 |
path | 上下文路径,与每个请求URI的开头匹配,以选择适当的Web应用程序进行处理。(即项目访问地址) |
reloadable | 设置为true时,将启动热部署。 |
Engine
Engine 是与特定的Service关联的请求处理器,它接收并处理一个或多个Connector的所有请求,并将完成的响应返回给Connector,最终传输给客户端。
Host
代表一个虚拟主机节点,没有host下可以有多个web项目,一个web项目对应一个Context,也就是Host元素下可以配置多个Context元素。Host元素嵌套在Engine元素内。
常见通用属性
属性 | 描述 |
---|---|
appBase | 此虚拟主机的Application Base目录。如果未指定,将使用默认值 webapps 。 |
xmlBase | 此虚拟主机的XML Base目录。如果未指定,将使用默认值conf/<engine_name>/<host_name> 。 |
createDirs | 如果设置为true,Tomcat将在启动阶段尝试创建目录appBase 和xmlBase 。默认值为true 。如果设置为true,并且目录创建失败,将打印出错误消息但不会停止启动序列。 |
autoDeploy | 是否开启自动部署。 |
Cluster
Cluster是tomcat集群配置节点。tomcat集群实现提供会话复制,上下文属性复制和集群范围的WAR文件部署。
SimpleTcpCluster属性
属性 | 描述 |
---|---|
className | 集群类,目前只有org.apache.catalina.ha.tcp.SimpleTcpCluster 可用。 |
channelSendOptions | channel发送选项。 |
channelStartOptions | 设置集群使用的 |
heartbeatBackgroundEnabled | 容器后台线程是否调用channel心跳。默认值为false。 |
notifyLifecycleListenerOnFailure | 如果所有ClusterListener都不接受channel消息,是否通知LifecycleListeners。默认值为false。 |
Tomcat 配置结构
配置文件整体结构如下
<Server>
<Service>
<Connector />
<Connector />
<Engine>
<Host>
<Context />
</Host>
</Engine>
</Service>
</Server>
Q.E.D.
Comments | 0 条评论