一 server.xml
server.xml 是tomcat 的核心配置文件,位于./conf/ 下.具有server,connector
Hosts 等元素模块。接下来我们看看吧。(导游介绍词)。本文内容基于tomcat 8.5 不同版本配置或有差异性。
tomcat 8.5是基于Servlet 3.1和JavaServer Pages 2.3。
tomcat 测试war包下载路径 测试war包
server.xml 结构图(还有些其他元素没有加入)
1.1 server 配置
server 是server.xml 的最外层元素,常用的属性有:
属性 | 描述 | 示例 |
---|---|---|
className | 要使用的java 类名 | |
address | 服务器等待接收shutdown 命令的地址,默认localhost | |
port | 接收shutdown命令的端口,设置为-1 为禁用关闭端口,也就是你不能通过这种方式来关闭了,这样就会影响你使用脚本(catalina.sh 或者是shutdown.sh)来stop了,默认绑定8005端口 | port="8005" |
shutdown | 指定shutdown 命令的别名,默认值SHUTDOWN | shutdown="SHUTDOWN" |
1.2 service 配置
service 是 server 的内层。可以将一个多个service 放在server 层里,
一个service 里面可以有多个 Connector 和一个Engine .
service 的属性
属性 | 描述 |
---|---|
className | 要使用的java类名,未指定的话就使用标准的实现 |
name | service显示的名称 |
1.3 Executor
官方文档链接
这个元素我们在平时配置的过程中用得比较少,它主要用于在多个connector 之间进行共享线程池。它的位置应该在 connector 之前,这样才能生效。
Executor 的属性 :
属性 | 描述 | 示例 |
---|---|---|
className | 要使用的java类名 | |
name | 用于在server.xml中的其他位置引用此池的名称。该名称是必需的,必须是唯一的。 | |
threadPriority | 执行程序中线程的优先级 ,默认为5 | |
daemon | 线程是否为守护线程,默认为 True | |
namePrefix | 每个线程的名称的前缀,单个线程的名称=namePrefix+threadNumber | |
maxThreads | 该线程池中最大的线程数,默认为200 | |
minSpareThreads | 最小线程数,就是在空闲时保持的最少线程数 ,默认为25 | |
maxIdleTime | 空闲线程关闭之前等待的时间,单位毫秒,默认是6000毫秒也就是一分钟 | |
maxQueueSize | 最大任务等待的数量,默认值是Integer.MAX_VALUE,也就是2147483647(java int整数的最大值) | |
prestartminSpareThreads | 是否应该在启动Executor时启动minSpareThreads,默认值为 false |
1.4 Connector 配置
关于 Connector 官网链接
当前以下所有的说明是针对 tomcat 8.5版本来说的,其他版本详情见官方文档。
参数 | 含义 | 示例 |
---|---|---|
port | 绑定的端口,如果设置为0,tomcat则随机获取一个空闲端口 | 默认 port="8080" |
protocol | 传输协议和版本 | 默认 protocol = "HTTP/1.1" |
connectionTimeout | 连接超时时间,单位毫秒 | 默认 connectionTimeout="20000" |
redirectPort | 接收到的ssl请求后重定向的端口 | 默认 redirectPort="8443" |
maxThreads | tomcat能创建来处理请求的最大线程数,也为最大并发数 超过则放入请求队列中进行排队,默认值为200;需要根据业务和系统性能进行调整 | maxThreads="1000" |
URIEncoding | url的字符编码,在tomcat8.5版本中,该值默认为UTF-8,除非在org.apache.catalina.STRICT_SERVLET_COMPLIANCE 将system property 设置为true才会使用ISO-8859-1 | URIEncoding="UT |