<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN213142145SSDF">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Executor name="tomcatThreadPool"
namePrefix="catalina-exec-"
maxThreads="500"
minSpareThreads="50"
maxQueueSize="100"
rejectionPolicy="abort"
prestartminSpareThreads="true"/>
<Connector
maxThreads="500"
minSpareThreads="50"
executor="tomcatThreadPool"
acceptCount="100"
port="8080"
protocol="HTTP/1.1"
connectionTimeout="30000"
maxConnections="10000"
redirectPort="8443"
enableLookups="false"
maxPostSize="10485760"
maxHttpHeaderSize="8192"
disableUploadTimeout="true"
acceptorThreadCount="2"
URIEncoding="utf-8"
processorCache="20000"
tcpNoDelay="true"
connectionLinger="5"
server="Server Version 11.0"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase=""
unpackWARs="true" autoDeploy="false">
<Context path="" docBase="webapps/cloudapi" reloadable="false" />
</Host>
</Engine>
</Service>
</Server>
关于 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="UTF-8" |
minProcessors | 启动时创建的线程数(最小线程数) | minProcessors="50" |
acceptCount | 指定当所有可以使用的处理请求的线程数都被使用时,可以放到队列中的请求数,就是被排队的请求数,超过这个数的请求将拒绝连接 默认值为100 | acceptcount="500" |
acceptorThreadCount | 可以用于接受连接的进程数,默认为1,但是在一些多核的的服务器上,我们会将它的值设置为2或者更大的数,来应对一些不活跃的连接。 | |
minSpareThreads | 最小空闲线程数,任何情况都会存活的线程数,即便超过了最大空闲时间,也不会被回收,默认值10; | minSpareThreads="25" |
maxSpareThreads | 最大空闲线程数,在最大空闲时间(maxIdleTime)内活跃过,此时空闲,当空闲时间大于maxIdleTime则被回收,小则继续存活,等待被调度,默认值50; | |
enableLookups | 调用request、getRemoteHost()执行DNS查询,以返回远程主机的主机名,如果设置为false,则直接返回IP地址 默认是禁用的,在请求过滤中的根据远程主机名过滤,需要将该参数设置为true | enableLookups="false" |
maxIdleTime | 最大空闲时间,超过这个空闲时间,且线程数大于minSpareThreads的,都会被回收,默认值1分钟(60000ms) | maxPostSize |
address | 对于一些具有多个ip的服务器,我们可以通过该参数指定绑定的ip,默认情况下监听所有的地址 | address="192.168.1.110" |
compressibleMimeType | 该值用来指定哪些文件类型的文件可以进行压缩,默认值为:text/html,text/xml,text/plain,text/css,text/javascript,application/javascript | |
compression | 开启gzip 压缩,可以接受的值是 "off"(禁用压缩),"on"(开启压缩),"force(强制压缩)","1-9"(等效于开启压缩,并且设定压缩等级),开启了压缩,也就意味着要占用更多的cpu资源 | compression |
compressionMinSize | 在compression 参数指定为on后,该参数用来指定压缩的阈值,只有大于该阈值才会被压缩,默认为 2048 | |
keepAliveTimeout | 指connector两个HTTP请求直接的等待时间,超过该时间没有接收到第二个HTTP请求就关闭连接,默认是使用connectionTimeout 的值,单位为毫秒 | |
maxConnections | 在一定时间内可以接受和处理的最大连接数,达到限制后,服务器接受但不处理该链接,但可以存放到acceptCount,该默认值因连接器类型而异。对于NIO和NIO2,默认值为10000。对于APR / native,默认为8192。 | |
maxCookieCount | 请求允许的最大cookie 数,值小于0表示无限制,默认值为 200 | |
disableUploadTimeout | 默认是true ,禁用数据上传超时 | |
connectionUploadTimeout | 设定数据上传的超时时间,只有在disableUploadTimeout设置为false才生效,单位毫秒 | connectionUploadTimeout="50000" |
processorCache | 进程缓冲器,默认值是maxThreads的值,使用好该值可以提升并发请求。 | |
示例配置 |