温馨提示×

centos中tomcat配置需要注意什么

小樊
43
2025-11-19 22:42:00
栏目: 智能运维

CentOS 上部署与配置 Tomcat 的关键注意事项

一 运行环境与权限

  • 使用受支持的 JDK(如 OpenJDK 8/11/17),先执行 java -version 校验;安装可用 sudo yum install java-1.8.0-openjdk-devel
  • 创建专用系统用户(如 tomcat)运行 Tomcat,避免使用 rootsudo useradd -r -s /sbin/nologin tomcat,并将 CATALINA_HOME 目录属主设为该用户。
  • 建议通过 systemd 托管:/etc/systemd/system/tomcat.service 中设置 User=tomcatGroup=tomcatEnvironment=JAVA_HOME=...Environment=CATALINA_HOME=...ExecStart=/opt/tomcat/bin/startup.shExecStop=/opt/tomcat/bin/shutdown.sh,然后 systemctl daemon-reload && systemctl enable --now tomcat
  • 开放防火墙端口(若使用 firewalld):sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp && sudo firewall-cmd --reload;生产环境优先使用 HTTPS/8443

二 安全加固

  • 删除或禁用默认应用与示例:webapps/docs、examples、host-manager、manager、ROOT;必要时仅保留业务应用。
  • 禁止目录浏览:在 conf/web.xml<param-name>listings</param-name> 设为 false
  • 隐藏版本与 Banner:在 conf/server.xml<Connector> 增加属性 server="MyAppServer/1.0";如需进一步隐匿,可修改 catalina.jar 中的 ServerInfo.properties
  • 访问控制:谨慎配置 tomcat-users.xml,仅授予必要角色;生产环境建议禁用或限制管理界面访问。
  • 传输安全:配置 HTTPS/TLS(证书、keystore、8443 端口),对外服务强制跳转 HTTPS
  • 运行安全:始终以 非 root 用户运行,遵循最小权限原则;定期更新 CentOSTomcat 版本与安全补丁。

三 内存与 JVM 调优

  • 设置堆与元空间(Java 8+):在 bin/catalina.sh 或新建 bin/setenv.sh 中配置 JAVA_OPTS
    • -Xms-Xmx 设为相同值(如 -Xms2g -Xmx2g)以避免运行期扩缩堆抖动;
    • Java 8+ 使用 Metaspace-XX:MetaspaceSize=... -XX:MaxMetaspaceSize=...
    • 可按需选择 GC(如 G1ParallelGC):-XX:+UseG1GC-XX:+UseParallelGC
  • 示例(setenv.sh):
    • JAVA_OPTS="-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC"
  • 重启生效:systemctl restart tomcat;通过 catalina.out 与 JMX/Prometheus 等确认参数与 GC 行为。

四 连接器与性能

  • 线程与协议:在 server.xml 配置 Executor 或直接在 Connector 调整 maxThreadsminSpareThreadsconnectionTimeout;协议优先 HTTP/1.1 NIO
  • 启用压缩:在 Connector 中开启 compression="on"compressableMimeType="text/html,text/xml,text/css,application/javascript" 以减少带宽。
  • 编码与超时:为 Connector 设置 URIEncoding="UTF-8";合理设置 connectionTimeoutkeepAliveTimeout 以平衡并发与资源占用。
  • 部署策略:生产建议关闭自动部署,设置 unpackWARs="false"autoDeploy="false",改为受控发布流程。

五 部署、监控与维护

  • 目录与发布:将应用放入 webapps 或使用外部 docBase;避免上传不可信 WAR;变更通过灰度/蓝绿发布降低风险。
  • 日志与审计:关注 catalina.out、localhost_access_log 与业务日志;定期审计异常访问与错误堆栈。
  • 监控与告警:结合 jstat -gcutil top/htopPrometheus/Grafana/Zabbix 监控 JVM GC、线程、内存、请求耗时 等指标,设置阈值告警。
  • 日常维护:定期更新 JDK/Tomcat 与应用依赖;变更前后做回滚预案与压测验证。

0