Nginx中location与proxy_pass的斜杠陷阱
Nginx 里最容易踩坑的一类配置,就是:
location /testopenapi/ {
proxy_pass http://backend/;
}这里 location 和 proxy_pass 都带了尾部 /,请求转发时会发生“前缀替换”。
现象
访问:
/testopenapi/callback后端实际收到的是:
/callback也就是说,/testopenapi/ 这一段被替换掉了。
如果不想替换前缀
把 proxy_pass 末尾的 / 去掉:
location /testopenapi/ {
proxy_pass http://backend;
}这时访问:
/testopenapi/callback后端收到的仍然是:
/testopenapi/callback记忆方式
可以粗暴记成一句话:
proxy_pass末尾带/,更像“替换路径前缀”;不带/,更像“保留原始路径”。
这个规则在做 API 网关、前后端联调、老接口迁移时特别常见。