当前位置: 首页 > news >正文

问题排查:之前运行正常的系统,突然批量接口报 404

如果一个**之前运行正常的系统**,现在突然出现**批量接口报 404 Not Found**,优先考虑以下原因(按可能性从高到低排序):

---

### 🔴 1. **后端服务未正确部署或启动异常**
> ✅ **最常见、最高优先级排查项**

- 新版本发布后,服务未成功启动。
- 应用进程崩溃、OOM 被杀掉、启动失败(如数据库连接不上、配置错误等)。
- 容器(Docker/K8s)部署失败或副本数为 0。
- 启动了但监听的端口不是 `9910`,或者绑定到了 `localhost` 导致外部无法访问。

🔍 **如何判断:**
- 访问任意一个简单的接口(如 `/api/health` 或 `/`),是否也 404?
- 查看服务器上是否有该 Java/Node 进程在运行:  
```bash
ps aux | grep java
netstat -tulnp | grep 9910
```
- 检查应用日志(logs/*.log)是否有启动失败信息。

---

### 🔴 2. **反向代理/Nginx 配置变更或失效**
> ✅ 尤其适用于通过 Nginx、Apache、网关(如 Zuul、Gateway)暴露服务的情况

- Nginx 配置被修改或重载,导致路由规则丢失。
- location 块路径匹配错误,例如:
```nginx
location /api/ {
proxy_pass http://backend/;
# 注意:这里会把 /api/ 前缀去掉,可能导致后端收不到正确路径
}
```
- 负载均衡指向了错误的服务实例(比如测试环境)。

🔍 **如何判断:**
- 直接绕过 Nginx,用内网 IP + 端口访问后端服务(如 `http://192.168.22.46:9910/api/xxx`)是否正常?
- 如果直接访问能通 → 说明问题是出在 Nginx 层。

---

### 🟡 3. **上下文路径(Context Path)发生变化**
> ✅ 常见于 Spring Boot 项目升级或配置调整

- 原来是 `/api/xxx`,但现在加了 context-path,比如:
```yaml
# application.yml
server:
servlet:
context-path: /pv-system
```
实际路径变成:`/pv-system/api/xxx`,前端仍请求旧路径 → 批量 404。

🔍 **如何判断:**
- 查看后端配置文件是否新增了 `context-path`。
- 查看启动日志中是否有类似:
```
Tomcat started on port(s): 9910 (http) with context path '/pv-system'
```

---

### 🟡 4. **API 路由前缀或版本统一调整**
- 后端将所有 API 统一迁移到 `/v2/` 或 `/service-name/` 下,但前端未同步更新。
例如:
- 原路径:`/api/initPhotovoltaicPlan`
- 新路径:`/api/pv-stage/initPhotovoltaicPlan`

🔍 **如何判断:**
- 和后端确认近期是否有“统一 API 分组”或“微服务拆分”改动。
- 查看 Swagger 文档基础路径是否变了。

---

### 🟡 5. **服务注册与发现异常(微服务架构下)**
> 如使用了 Eureka、Nacos、Consul 等

- 网关(Gateway)无法从注册中心获取可用实例列表。
- 后端服务注册失败,导致网关转发时找不到目标服务 → 返回 404。
- 网关自身路由配置未刷新。

🔍 **如何判断:**
- 登录 Nacos/Eureka 控制台,查看 `photovoltaic-early-stage` 服务是否在线。
- 检查网关日志,看是否提示 “No instance available”。

---

### 🟢 6. **前端构建/代理配置错误(可能性较低,若仅你一人有问题)**
- 若只有你本地报错,其他人正常 → 可能是你本地开发环境代理设置错误。
- `vite.config.js` 或 `vue.config.js` 中的 proxy 配置被误改。

---

### ✅ 快速诊断流程图(建议操作顺序):

```text
1. 用 curl 或 Postman 直接调用后端接口:
→ 成功? → 问题在 Nginx/网关层
→ 失败? → 进入第2步

2. 检查后端服务是否运行:
→ 进程存在?端口监听? → 进入第3步
→ 不存在? → 查日志,重启服务

3. 查看后端日志(尤其是启动日志):
→ 是否设置了 context-path?
→ 控制器是否加载?

4. 检查 Nginx / Gateway 配置是否变更

5. 联系后端确认:最近是否有发布?是否有路径重构?
```

---

### 💬 总结一句话:
> **“之前好好的,现在批量 404” —— 最大概率是后端服务没起来,或 Nginx 配置出问题,其次是 context-path 或 API 前缀变更。**

建议先 **检查服务状态和日志**,再 **绕过代理直连后端测试**,能快速定位根源。


文章转载自:

http://vTiSxqWC.rqfmL.cn
http://2qZ4Gzk6.rqfmL.cn
http://zNxu79be.rqfmL.cn
http://CJ2Org56.rqfmL.cn
http://Arm3qGm2.rqfmL.cn
http://suxm2pFT.rqfmL.cn
http://Zk1eYSD6.rqfmL.cn
http://2ZLcsnmV.rqfmL.cn
http://lx9I1PiZ.rqfmL.cn
http://nBcOW0kw.rqfmL.cn
http://uRLmfEJn.rqfmL.cn
http://ZxMCzAVu.rqfmL.cn
http://8zHYGQRj.rqfmL.cn
http://1hp3Azau.rqfmL.cn
http://CR3slQNJ.rqfmL.cn
http://A7d0xydI.rqfmL.cn
http://jAhyzell.rqfmL.cn
http://u3R6UYkO.rqfmL.cn
http://7GamM1pf.rqfmL.cn
http://PS58stuL.rqfmL.cn
http://P2ZiAf73.rqfmL.cn
http://QU8flTwN.rqfmL.cn
http://FuBir48u.rqfmL.cn
http://fTy0YSL5.rqfmL.cn
http://cnWHRPAV.rqfmL.cn
http://4GXhvcjw.rqfmL.cn
http://8Eef6MzQ.rqfmL.cn
http://GJ0Mqg39.rqfmL.cn
http://v5lfVjGs.rqfmL.cn
http://uOZhVQjb.rqfmL.cn
http://www.dtcms.com/a/374797.html

相关文章:

  • 【Java实战㊱】Spring Boot邂逅Redis:缓存加速的奇妙之旅
  • Spring Cache 多租户缓存隔离解决方案实践
  • Mybatis-12 第三方缓存-EhCache
  • 【C++】特别的程序错误处理方式——异常机制
  • 嵌入式设备上mqtt库的使用
  • 【Linux基础知识系列:第一百二十六篇】使用dd命令进行磁盘复制
  • 从零到一使用Linux+Nginx+MySQL+PHP搭建的Web网站服务器架构环境——LNMP(上)
  • 使用虚拟机Ubuntu搭建mosquito服务器 使esp32、上位机通信
  • 云计算技术栈
  • 国产时序数据库选型指南-从大数据视角看透的价值
  • 东京本社招聘 | 财务负责人 多个日本IT岗位(Java/C++/Python/AWS 等),IT营业同步招募
  • AWS ALB 详解:智能流量调度器
  • Django REST框架:ModelViewSet全面解析
  • 基于Centos7.9搭建svn服务端
  • PyTorch 和nn.Conv2d详解
  • pytorch基本运算-分离计算
  • 基于容器化云原生的 MySQL 及中间件高可用自动化集群项目
  • “图观”端渲染场景编辑器
  • 构建分布式京东商品数据采集系统:基于 API 的微服务实现方案
  • HTML5点击转圈圈 | 深入了解HTML5技术中的动态效果与用户交互设计
  • springboot rabbitmq 延时队列消息确认收货订单已完成
  • CString(MFC/ATL 框架)和 QString(Qt 框架)
  • Sklearn(机器学习)实战:鸢尾花数据集处理技巧
  • 工具框架:Scikit-learn、Pandas、NumPy预测鸢尾花的种类
  • AI GEO 优化能否快速提升网站在搜索引擎的排名?​
  • nvm和nrm的详细安装配置,从卸载nodejs到安装NVM管理nodejs版本,以及安装nrm管理npm版本
  • 对口型视频怎么制作?从脚本到成片的全流程解析
  • 从“能说话”到“会做事”:AI Agent如何重构日常工作流?
  • 洛谷 P1249 最大乘积-普及/提高-
  • 小红书获取笔记详情API接口会返回哪些数据?