Tomcat 的 Connector(连接器)是处理客户端 HTTP 连接的核心组件,负责监听端口、解析协议、管理线程池等,其配置直接影响 Tomcat 的性能、兼容性和安全性。以下是 Connector 的核心配置方式、关键参数、常见场景配置,基于 Tomcat 8/9/10 版本(主流版本)讲解。
Connector 的配置主要在 Tomcat 安装目录下的 conf/server.xml 文件中,嵌套在 <Service> 标签内(一个 Service 可配置多个 Connector,对应不同端口 / 协议)。
基础配置模板:
<Service name="Catalina">
<Connector
port="8080" <!-- 监听端口 -->
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
maxThreads="200"
minSpareThreads="10"
acceptCount="100"
URIEncoding="UTF-8"
redirectPort="8443"
/>
<Engine name="Catalina" defaultHost="localhost">
</Engine>
</Service>
Tomcat 通过线程池处理请求,参数配置直接影响并发能力:
若需支持 HTTPS,需配置 SSL 相关参数(需先生成证书):
<Connector
port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" <!-- 开启 SSL -->
scheme="https"
secure="true"
keystoreFile="conf/localhost-rsa.jks"
keystorePass="changeit"
keyAlias="localhost-rsa"
sslProtocol="TLS"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,..."
/>
Tomcat 8+ 默认使用 NIO 模型,适合高并发场景:
<Connector
port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol" <!-- NIO 模型 -->
connectionTimeout="30000"
maxThreads="800"
minSpareThreads="50"
acceptCount="500"
maxConnections="20000"
URIEncoding="UTF-8"
enableLookups="false"
compression="on"
compressionMinSize="2048"
maxKeepAliveRequests="500"
keepAliveTimeout="30000"
/>
- 生成 SSL 证书(JDK
keytool 工具):
keytool -genkey -alias localhost-rsa -keyalg RSA -keysize 2048 -validity 3650 -keystore conf/localhost-rsa.jks
- 配置 HTTPS Connector:
<Connector
port="443" <!-- HTTPS 默认端口 -->
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="conf/localhost-rsa.jks"
keystorePass="123456"
keyAlias="localhost-rsa"
sslProtocol="TLS"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
URIEncoding="UTF-8"
maxThreads="800"
acceptCount="500"
/>
一个 Service 可配置多个 Connector,监听不同端口:
<Service name="Catalina">
<Connector port="8080" protocol="Http11NioProtocol" .../>
<Connector port="8443" protocol="Http11NioProtocol" SSLEnabled="true" .../>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
</Service>
protocol 参数决定 Connector 的底层 IO 模型,不同模型性能差异显著:
配置建议:生产环境优先用 Http11NioProtocol,Linux 服务器可升级为 Http11Nio2Protocol 或 Http11AprProtocol。
修改 server.xml 后,重启 Tomcat 即可生效(Tomcat 不支持 Connector 配置热加载)。
- 端口监听:执行
netstat -tlnp | grep 8080,确认端口已监听;
- HTTPS 验证:访问
https://localhost:443,确认证书正常加载;
- 线程池验证:通过 Tomcat 管理端(
http://localhost:8080/manager/html)查看线程池状态;
- 乱码验证:访问含中文参数的 URL(如
http://localhost:8080/demo?name=张三),确认解析正常。
Connector 配置的核心是「基础通信 + 线程池调优 + 场景适配」:
- 基础参数保证通信正常(端口、编码、超时);
- 线程池参数决定并发能力(按服务器配置调整 maxThreads/maxConnections);
- 场景适配(HTTPS、压缩、IO 模型)提升安全性和性能;
- 生产环境优先选择 NIO/NIO2/APR 模型,关闭不必要的功能(如 enableLookups)。
合理配置 Connector 是 Tomcat 性能优化的第一步,需结合业务并发量、服务器资源、安全要求综合调整。