首页主机资讯Tomcat日志中出现404错误怎么办

Tomcat日志中出现404错误怎么办

时间2025-11-20 19:13:03发布访客分类主机资讯浏览1347
导读:Tomcat日志出现404的排查与修复指南 一、快速判断与定位 查看 logs/catalina.out 与 logs/localhost.<日期>.log,定位出现 404 的 时间、客户端IP、请求URI、HTTP方法,确...

Tomcat日志出现404的排查与修复指南

一、快速判断与定位

  • 查看 logs/catalina.outlogs/localhost.< 日期> .log,定位出现 404 的 时间、客户端IP、请求URI、HTTP方法,确认是静态资源还是某个 Servlet/路径映射 不存在。
  • 校验访问 URL:协议、主机、端口、应用上下文路径(如 /myapp)、Servlet 映射路径是否一致,注意大小写与斜杠。
  • 确认应用是否已部署成功:进入 webapps,检查是否生成了应用目录或已解压的 WAR;若使用外部目录部署,核对 docBase 与目录实际存在。
  • 核对端口连通:默认 8080,用浏览器或命令行访问 http://localhost:8080/ 验证 Tomcat 首页是否可达;必要时排查端口占用与防火墙。
  • 若使用反向代理(如 Nginx/Apache),先绕过代理直接访问 Tomcat 验证,排除代理转发规则错误。

二、常见根因与对应修复

  • 部署与WAR问题:WAR 损坏、未解压、应用名与访问路径不一致;重新打包并部署,确认 webapps/应用名/ 目录存在且内容完整。
  • 上下文路径错误:应用实际上下文不是预期的 //myapp;检查 server.xml 或应用包名,必要时显式配置。
  • 配置映射问题:web.xmlservlet-mapping 与访问路径不匹配;修正 url-pattern,并确保欢迎页(如 index.html/index.jsp)配置正确。
  • 静态资源位置不当:应将资源放在 WebContent/staticsrc/main/webapp/static 等 Web 可访问目录,避免放在 WEB-INF 下(该目录受保护,浏览器不可直接访问)。
  • 默认首页缺失:未在 web.xml 配置 welcome-file-list 或目录中缺少 index.html/index.jsp,导致根路径返回 404。
  • 缓存与临时文件:清理 work/temp/,重启 Tomcat,避免旧编译结果干扰。
  • 文件权限:确保运行 Tomcat 的用户对应用目录与文件具备读取权限。

三、Linux与网络层面的检查

  • 端口占用与连通:使用命令检查 8080 是否被占用(如 netstat -tulnp | grep :8080netstat -ano),必要时调整 server.xmlConnector port
  • 防火墙放行:在 CentOS/RHEL 执行
    sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
    sudo firewall-cmd --reload
  • SELinux:若启用,检查是否限制 Tomcat 访问文件/端口,按需调整策略(如设置布尔值或文件上下文)。
  • 代理配置:若经 Nginx 转发,核对 upstream、location 前缀与应用 context path 一致,避免路径被错误改写。

四、高效排查清单

检查项 如何验证 常见修复
URL 与上下文路径 对照日志中的请求URI,手动拼接待访问地址 修正访问前缀(如加上 /myapp),统一大小写与斜杠
应用是否部署成功 查看 webapps 是否生成目录/WAR 已解压 重新部署 WAR,清理后重启
server.xml/context.xml 核对 < Context path/docBase> 与实际目录一致 修正 path/docBase 或调整部署方式
web.xml 映射与欢迎页 检查 servlet-mappingwelcome-file-list 修正映射、补充 index.html/index.jsp
静态资源位置 确认资源不在 WEB-INF 下且路径正确 移动到 Web 可访问目录,更新引用路径
端口与防火墙 访问 http://IP:8080/,检查占用与放行 释放端口/改端口,放行防火墙
代理转发 绕过代理直连 Tomcat 对比结果 修正 Nginx/Apache 的 location 与前缀
权限与SELinux 检查目录属主与权限;getenforce/setsebool 赋权,必要时调整 SELinux 策略
缓存与临时文件 观察 work/ 是否残留旧文件 清理 work/temp 并重启

五、日志解读示例与修复动作

  • 日志示例:
    127.0.0.1 - - [20/Nov/2025:10:20:10 +0000] “GET /myapp/api/user HTTP/1.1” 404 961
    含义:访问 /myapp/api/user 返回 404
    处理步骤:
    1. webapps/myapp/WEB-INF/web.xml 检查是否存在匹配 /api/userservlet-mapping
    2. 若使用框架(如 Spring MVC),确认 @RequestMapping(“/api/user”) 生效且组件扫描正确;
    3. 确认应用已部署且 myapp 目录存在;
    4. 清理 work/ 并重启 Tomcat 后复测。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Tomcat日志中出现404错误怎么办
本文地址: https://pptw.com/jishu/752332.html
如何配置CentOS Tomcat安全策略 如何监控Apache日志的异常流量

游客 回复需填写必要信息