CentOS 上部署与配置 Tomcat 的关键注意事项
一 运行环境与权限
java -version 校验;安装可用 sudo yum install java-1.8.0-openjdk-devel。sudo useradd -r -s /sbin/nologin tomcat,并将 CATALINA_HOME 目录属主设为该用户。/etc/systemd/system/tomcat.service 中设置 User=tomcat、Group=tomcat、Environment=JAVA_HOME=...、Environment=CATALINA_HOME=...、ExecStart=/opt/tomcat/bin/startup.sh、ExecStop=/opt/tomcat/bin/shutdown.sh,然后 systemctl daemon-reload && systemctl enable --now tomcat。sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp && sudo firewall-cmd --reload;生产环境优先使用 HTTPS/8443。二 安全加固
<param-name>listings</param-name> 设为 false。<Connector> 增加属性 server="MyAppServer/1.0";如需进一步隐匿,可修改 catalina.jar 中的 ServerInfo.properties。三 内存与 JVM 调优
JAVA_OPTS:
-Xms 与 -Xmx 设为相同值(如 -Xms2g -Xmx2g)以避免运行期扩缩堆抖动;-XX:MetaspaceSize=... -XX:MaxMetaspaceSize=...;-XX:+UseG1GC 或 -XX:+UseParallelGC。JAVA_OPTS="-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC"systemctl restart tomcat;通过 catalina.out 与 JMX/Prometheus 等确认参数与 GC 行为。四 连接器与性能
maxThreads、minSpareThreads、connectionTimeout;协议优先 HTTP/1.1 NIO。compression="on"、compressableMimeType="text/html,text/xml,text/css,application/javascript" 以减少带宽。URIEncoding="UTF-8";合理设置 connectionTimeout 与 keepAliveTimeout 以平衡并发与资源占用。unpackWARs="false"、autoDeploy="false",改为受控发布流程。五 部署、监控与维护
top/htop 与 Prometheus/Grafana/Zabbix 监控 JVM GC、线程、内存、请求耗时 等指标,设置阈值告警。