加斜杠表示截断前缀只转发剩余路径,不加斜杠则原样拼接完整uri;proxy_pass带路径末尾必须加斜杠防粘连,推荐统一使用带斜杠写法确保路径映射准确稳定。

加不加斜杠,本质是告诉 Nginx 用“拼接”还是“替换”方式处理请求路径——一个字符不对,后端就收不到正确 URI,接口直接 404。
不加斜杠:原样拼接,保留 location 前缀
当 proxy_pass 后面只有协议、主机和端口(如 http://127.0.0.1:3000),没有路径部分时,Nginx 会把客户端原始请求 URI 完整追加过去。
- location /api/ { proxy_pass http://127.0.0.1:3000; }
- 请求
/api/users→ 后端收到/api/users - 适合后端本身也部署在
/api上下文(比如 Tomcat 应用路径为 /api) - 风险:若后端监听根路径,所有请求都带前缀,必报 404
加斜杠:截断前缀,只转发剩余路径
只要 proxy_pass 后面带了路径(哪怕只是一个 /,如 http://127.0.0.1:3000/),Nginx 就会把 location 匹配到的前缀整个去掉,只把剩余部分拼到该路径之后。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- location /api/ { proxy_pass http://127.0.0.1:3000/; }
- 请求
/api/users→ 后端收到/users - 请求
/api/v2/login→ 后端收到/v2/login - 最常用场景:前后端分离,后端是 Spring Boot、Express 等默认跑在根路径的服务
带路径但不加斜杠:容易粘连出错
如果写成 http://127.0.0.1:3000/v1(末尾没 /),Nginx 会把匹配前缀替换成 /v1,但**不自动加分隔符**,导致路径粘连。
- location /api/ { proxy_pass http://127.0.0.1:3000/v1; }
- 请求
/api/users→ 后端收到/v1users(不是/v1/users!) - 这种写法极易引发 404,除非明确需要粘连效果,否则应避免
带路径且加斜杠:安全重写,语义清晰
写成 http://127.0.0.1:3000/v1/,既完成前缀替换,又保证拼接干净。
- location /service/api/ { proxy_pass http://127.0.0.1:3000/v1/; }
- 请求
/service/api/profile→ 后端收到/v1/profile - 适合 API 版本升级、微服务网关等需精确控制路径映射的场景
- 推荐统一使用这种写法,行为稳定、意图明确










