Debian上Tomcat网络连接优化指南
一 连接器与线程池优化
<Executor name="tomcatThreadPool"
namePrefix="catalina-exec-"
maxThreads="500"
minSpareThreads="50"
maxQueueSize="100"/>
<Connector executor="tomcatThreadPool"
port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443"
maxConnections="10000"
enableLookups="false"
compression="on"
compressionMinSize="1024"
compressibleMimeType="text/html,text/xml,text/css,text/javascript"/>
<Connector port="8443"
protocol="org.apache.coyote.http2.Http2Protocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
certificateFile="conf/localhost-rsa-cert.pem"
certificateChainFile="conf/localhost-rsa-chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
提示:静态资源建议交由CDN/反向代理处理,Tomcat侧开启压缩主要改善动态内容传输效率。二 操作系统与网络栈调优
sudo sysctl -p /etc/sysctl.d/99-tomcat-network.conf
三 反向代理与上游超时对齐
upstream tomcat_servers {
server 127.0.0.1:8080;
}
server {
listen 80;
location / {
proxy_pass http://tomcat_servers;
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
send_timeout 60s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
四 JVM与长连接优化
export CATALINA_OPTS="-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC"
提示:JVM 与连接器参数需结合压测结果逐步微调,避免一次性大幅变更。五 监控验证与回滚预案