前端和运维的哪些爱

完成内容

  • 完成 4-5 个接口的前端联调工作
  • 接入并测试微信支付流程
  • 协助运维排查接口 404 的部署问题

Nginx 404 排查经历

问题现象

前端部署后,所有接口统一返回 404 Not Found

后端确认服务已正常启动,因此开始排查前端与 Nginx 配置。


排查过程

1. 检查前端请求前缀(baseUrl)

前端配置的请求前缀为:

复制代码
/api

Nginx 中转发规则:

复制代码
location /api/ {
    proxy_pass http://backend/;
}

两边一致,但访问依然报 404。

2. 检查后端路径

Controller 映射路径正常,但后台日志显示:请求未到达后端

这说明问题还是出在 Nginx 转发链路。

3. 验证实际可访问路径

让运维提供后端真实可访问地址后发现:

后端部署时多加了一个服务前缀,例如:

复制代码
/server-prefix

实际路径变成:

复制代码
/server-prefix/user/info

但前端与 Nginx 都没有拼接这个前缀,因此全部 404。


最终解决方案

  • 前端修改配置文件中的 baseUrl重新打包:

    /server-prefix

  • 更新 Nginx:

    location /server-prefix {
    proxy_pass http://backend;
    }

修改后重新部署 → 全部接口恢复正常。


🎉 今日总结

  • 完成接口联调与支付流程接入
  • 协助定位 Nginx 转发与后端路径不一致的问题
  • 问题根本原因:后端部署新增路径前缀但未同步告知

整体工作顺利,排查过程也帮助团队更好梳理了路径配置规则。

Nginx 转发关键知识总结

## 1. Nginx 路径匹配规则

1.1 精确匹配 (=)

nginx 复制代码
location = /api {
}

只匹配完全等于 /api 的请求。


1.2 普通前缀匹配

nginx 复制代码
location /api {
}

匹配所有以 /api 开头的请求。


1.3 最常用:/api/ 前缀匹配

nginx 复制代码
location /api/ {
}
  • 匹配所有以 /api/ 开头的路径
  • 匹配到的部分 /api/ 会被处理用于后续的转发逻辑

适用于大多数前后端分离项目的 API 转发。


1.4 正则匹配(~ / ~*

nginx 复制代码
location ~ \.php$ {
}

用于正则判断,不常用于 API 场景。


## 2. proxy_pass 加斜杠 vs 不加斜杠 的区别(重点!)

假设如下配置:

nginx 复制代码
location /api/ {
    proxy_pass http://backend/;
}

2.1 proxy_pass 结尾带 /(常用于 API)

  • 删除 location 中匹配到的部分 (如 /api/
  • 然后把剩余路径拼到 proxy_pass 后

示例:

请求:

复制代码
/api/user/info

后端收到:

复制代码
/user/info

这是接口转发最常用、最安全的写法。


2.2 proxy_pass 结尾不带 /

  • 不会删除匹配到的部分
  • 请求路径整体追加到 proxy_pass 后

示例:

nginx 复制代码
location /api/ {
    proxy_pass http://backend;
}

请求:

复制代码
/api/user/info

后端收到:

复制代码
/api/user/info

最关键总结表

location proxy_pass 后端最终收到路径
/api/ http://backend/ /user/info
/api/ http://backend /api/user/info

区别就在于 proxy_pass 后面有没有 /


## 3. 什么时候应该加 /

推荐规则:

需求 写法 原因
去掉 /api 前缀(最常用) proxy_pass http://backend/; 自动移除匹配前缀,路径更干净
保留 /api 前缀 proxy_pass http://backend; 原样转发完整路径

## 4. 为什么会出现转发后 404?(与你的场景对应)

问题原因:

  • 前端访问:/api/user/info
  • Nginx 去掉 /api/ → 转发 /user/info
  • 但后端真实路径是:/server-prefix/user/info

路径不一致 → 404

最终通过:

  • 前端 baseUrl 增加 /server-prefix
  • Nginx proxy_pass 增加 /server-prefix

才使路径一致。


## 5. 可引用的知识点总结

复制代码
Nginx 中,location 用于匹配请求路径,proxy_pass 用于决定转发后的最终路径。
proxy_pass 末尾加不加 '/' 会影响路径是否被替换:

- 加 '/':去掉匹配部分(`/api/`),再拼接剩余路径
- 不加 '/':完整原路径追加到 proxy_pass 后

因此,location /api/ + proxy_pass http://backend/ 是最常用的 API 转发模式。
相关推荐
yuhaiqiang19 分钟前
从这两件事就能看出 vibecoding 距离专业作品差距有多大?AI 能抹平技术,但抹不平品味 !
前端·后端·程序员
一次旅行24 分钟前
DeepSeek‑V4‑Flash‑Vision‑Exp 小白入门实战|3种传图方式、完整可跑代码、避坑排障
java·前端·人工智能
其实防守也摸鱼1 小时前
Codex破局:前端组件秒级生成的技术文章大纲
开发语言·前端·人工智能·学习·安全·web安全
奥莱维1 小时前
KNX酒店方案_KNX专用线与高端酒店技术逻辑
java·服务器·前端·数据库
qq_452396231 小时前
第二篇:《前端架构的“道”与“术”:架构设计原则与决策框架》
前端·架构
用户921080262862 小时前
AI 消息列表虚拟滚动:这是业务问题,还是组件能力边界?
前端
前端snow2 小时前
ai agent---mcp知识汇总
前端
计算机魔术师2 小时前
AI 写了一半代码,谁来背锅?Anthropic 的安全重构笔记
前端
明月_清风2 小时前
vLLM 深度实战:2026 年生产级 LLM 推理引擎完全指南
前端·后端·ai编程
风月说与山鬼2 小时前
七、uni-app页面与组件生命周期
前端·uni-app