跳转至

Tomcat 故障排查手册

文档概览

1. 端口占用 / 启动失败

概要

startup.sh 后进程退出,或日志报 Address already in use

排查步骤

  1. 检查 8080/8005/8009 是否被占用:ss -lntp | grep -E '8080|8005|8009'
  2. 核对 server.xmlConnector portServer port 无冲突。
  3. 查看 logs/catalina.out 首屏异常栈。

2. 内存溢出 OOM / 频繁 Full GC

关键词

JAVA_OPTS / CATALINA_OPTS / OutOfMemoryError

排查步骤

  1. 确认 setenv.sh 中堆大小(如 -Xms/-Xmx)与容器/物理机匹配。
  2. 分析 HeapDumpOnOutOfMemoryError 或 MAT 工具。
  3. 检查 Connector maxThreads、应用 session 泄漏。

3. 应用 404 / 部署失败

排查步骤

  1. WAR 是否在 webapps/autoDeploy / unpackWARs 配置。
  2. logs/localhost.*.log 应用启动错误。
  3. conf/Catalina/localhost/ 是否有 context 覆盖。

4. 反向代理后 HTTPS/客户端 IP 错误

排查步骤

  1. 启用 RemoteIpValve 或 AJP secretRequired 配置。
  2. 核对 Nginx proxy_set_header X-Forwarded-*
  3. scheme/secureredirectPort 在 Connector 上是否正确。