You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NGINX反向代理无法转发Express应用请求问题排查

问题诊断与解决方案

你的问题核心是Nginx代理时传递的路径与Express后端的路由不匹配:

当访问https://example.com/mypath时,Nginx默认会将完整请求路径/mypath转发到后端API(即https://127.0.0.1:5001/mypath),但你的Express后端仅配置了根路径/的路由,因此后端找不到对应路径,返回Cannot GET /mypath。

修复方案(二选一即可)

方案1:修改Nginx配置(推荐,无需改动后端代码)

在location /mypath的proxy_pass末尾添加/,让Nginx自动剥离/mypath前缀,将剩余路径转发到后端根路径:

location /mypath {
        include proxy_params;
        proxy_pass https://backend_api/;  # 注意末尾的斜杠
}

修改后,请求https://example.com/mypath/xxx会被转发到https://127.0.0.1:5001/xxx,与后端的根路由匹配。

方案2:修改Express后端路由

调整后端的路由前缀,匹配Nginx传递的路径:

// 将原来的 app.use("/", MyController); 改为:
app.use("/mypath", MyController);

这样后端会处理所有以/mypath开头的请求,与Nginx转发的路径一致。

额外验证步骤

  1. 修改Nginx配置后,执行sudo nginx -t检查配置语法是否正确
  2. 重载Nginx生效:sudo systemctl reload nginx

内容的提问来源于stack exchange,提问作者Biskweet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:46:23