首页主机资讯Linux Tomcat出现404错误怎么解决

Linux Tomcat出现404错误怎么解决

时间2025-12-01 15:02:05发布访客分类主机资讯浏览1371
导读:Linux Tomcat 出现 404 的排查与修复指南 一 快速自检 核对访问地址:确认协议、主机、端口与上下文路径。默认端口为8080,若部署为 WAR 包名myapp,常见访问为:http://服务器IP:8080/myapp/;R...

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

一 快速自检

  • 核对访问地址:确认协议、主机、端口与上下文路径。默认端口为8080,若部署为 WAR 包名myapp,常见访问为:http://服务器IP:8080/myapp/;ROOT 应用可直接用 /。注意 Linux 路径与文件名大小写敏感
  • 查看 Tomcat 是否监听端口:执行 sudo netstat -tulnp | grep :8080,确认状态为 LISTEN;若被占用,修改 conf/server.xml 中的 Connector port
  • 检查应用是否部署成功:进入 webapps,应看到目录 myapp/ 或解压后的内容;WAR 是否完整未损坏。
  • 访问日志定位:查看 logs/catalina.outlogs/localhost.< 日期> .log,搜索 404 与对应的请求路径,获取更具体的失败原因。

二 常见根因与对应修复

  • 部署与路径问题:应用未解压或放置错误、WAR 损坏、上下文路径与访问 URL 不一致。修复:将正确 WAR 放入 webapps,确保解压成功;必要时重命名 WAR 为期望的上下文名;修正访问 URL 的上下文与资源路径。
  • 配置问题:server.xmlHost/Context 配置不当,web.xmlservlet-mapping/url-pattern 与请求不匹配。修复:核对 server.xmlappBase、unpackWARs、autoDeployConnector port;检查应用的 web.xml 或使用注解的 @WebServlet 映射是否与 URL 一致。
  • 项目结构问题:缺少默认首页或静态资源不在正确目录。修复:在应用根或 WEB-INF 下放置 index.html/index.jsp;静态资源按规范存放(如 SpringBoot 的 src/main/resources/static)。
  • 权限与所有权:Tomcat 运行用户无权读取应用目录。修复:chown -R tomcat:tomcat /opt/tomcat/webapps/myappchmod -R 755 /opt/tomcat/webapps/myapp
  • 端口与网络:端口被占用或防火墙/安全组拦截。修复:更换 server.xml8080;在 CentOS/RHEL 放行端口:sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent & & sudo firewall-cmd --reload;云服务器同步开放安全组。
  • 反向代理配置:使用 Nginx/Apache 时 upstream 或路径转发错误。修复:核对代理的 proxy_pass 指向 http://127.0.0.1:8080/正确上下文,以及 Locationproxy_set_header
  • SELinux 限制(RHEL/CentOS):可能阻止访问。修复:sudo setsebool -P httpd_can_network_connect 1,必要时 sudo chcon -Rt httpd_sys_content_t /opt/tomcat/webapps
  • SpringBoot 打成 WAR 的特殊情况:未排除内嵌 Tomcat、上下文路径配置不当、缺少 web.xml 或启动类未继承 SpringBootServletInitializer。修复:在 pom.xml 设置 < packaging> war< /packaging> 并排除内嵌容器依赖;配置 server.servlet.context-path;确保启动类正确继承并覆盖 configure

三 建议的排查顺序

  1. ps -ef | grep tomcat 确认进程存活,再用 netstat -tulnp | grep :8080 确认监听。
  2. 直接访问 http://服务器IP:8080/ 验证 Tomcat 欢迎页;若不通,先解决端口/防火墙/网络。
  3. 进入 webapps 检查应用目录或 WAR 是否存在且完整。
  4. 打开 logs/catalina.outlogs/localhost.< 日期> .log,定位 404 的具体请求与原因。
  5. 校验 server.xml 与应用的 web.xml(或注解映射)是否与访问 URL 一致。
  6. 检查 Linux 文件权限与所有权,确保 Tomcat 用户可读可执行。
  7. 若有 Nginx/Apache,逐行核对反向代理转发与路径前缀。
  8. CentOS/RHEL 上检查 firewalld/SELinux 策略。
  9. 修改配置或部署后执行 bin/shutdown.sh & & bin/startup.sh 重启,必要时重新部署 WAR。

四 最小可行验证示例

  • 部署验证:将 ROOT.war 放入 webapps,启动后在浏览器访问 http://服务器IP:8080/,应看到 Tomcat 默认页。
  • 应用验证:将 myapp.war 放入 webapps,确认生成 myapp/ 目录;访问 http://服务器IP:8080/myapp/http://服务器IP:8080/myapp/index.html(或你的业务路径)。
  • 接口验证:若存在 /api/hello,确保 web.xml 或注解映射为 /api/hello,然后用 curl -v http://服务器IP:8080/myapp/api/hello 查看响应与日志。
  • 代理验证(如有 Nginx):配置 proxy_pass http://127.0.0.1:8080/myapp; ,用 curl -H Host:your.domain http://服务器IP/ 测试根路径转发是否正确。

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


若转载请注明出处: Linux Tomcat出现404错误怎么解决
本文地址: https://pptw.com/jishu/760134.html
Debian系统下vsftp的日志记录 Debian系统下vsftp的性能监控

游客 回复需填写必要信息