工作经验分享

nginx 反向代理路径拼接详解与宝塔面板实战

1. 背景说明

在使用 nginx 做反向代理时,proxy_pass 的路径拼接规则经常让人踩坑。比如:

2. 关键原理:proxy_pass 路径拼接规则

2.1 配置示例

location ^~ /faq {

  proxy_pass http://127.0.0.1:3108;

}

2.2 你想要的效果

你希望后端收到 /api/chat,而不是 /faq/api/chat。

3. 解决方法

方法一:去掉前缀(推荐)

让 nginx 自动去掉 /faq 前缀,只把后面的路径转发给后端。

配置方法

location ^~ /faq/ {
  proxy_pass http://127.0.0.1:3108/;
}

详细说明

方法二:后端支持带前缀

如果你希望后端直接处理 /faq/api/chat,那后端服务必须有 /faq/api/chat 这个接口。

4. 宝塔面板设置方法

步骤

  1. 打开宝塔面板 → 网站 → 你的网站 → 设置 → 反向代理
  2. 路径填写:/faq/
  3. 目标URL填写:http://127.0.0.1:3108/
  4. 保存并重载 nginx

这样,访问 http://你的域名/faq/api/chat,后端实际收到的是 /api/chat,接口就能正常响应了。

5. 常见问题与排查

检查后端实际监听的路径和 nginx 代理后的路径是否一致。

检查 proxy_pass 是否以 / 结尾,location 是否以 / 结尾。

6. 总结


建议收藏本篇,遇到接口404、路径错乱时,优先排查 nginx 路径拼接!

如有疑问,欢迎留言交流。

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »