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

使用Nginx代理时出现页面未找到(404)问题求助

Nginx反向代理404问题的原因及解决办法

你的问题出在proxy_pass的路径匹配逻辑上:当location /api搭配不带末尾斜杠的proxy_pass http://OTHER_SERVER_IP_ADDRESS时,Nginx会将请求的完整路径(包含/api前缀)转发给后端服务器。比如访问http://myservername.com/api,后端实际收到的请求是http://OTHER_SERVER_IP_ADDRESS/api,但你的后端只有根路径/能返回正常响应,因此返回404 NOT FOUND。

下面是两种可行的修正方案:

方案一:给proxy_pass添加末尾斜杠

修改location /api块的配置:

location /api {
    proxy_pass http://OTHER_SERVER_IP_ADDRESS/;
}

添加末尾斜杠后,Nginx会将/api作为前缀剥离,把剩余路径拼接在后端的根路径后。比如:

  • 访问/api → 转发到http://OTHER_SERVER_IP_ADDRESS/
  • 访问/api/index.html → 转发到http://OTHER_SERVER_IP_ADDRESS/index.html
    完全匹配你直接访问后端的逻辑。

方案二:用rewrite重写请求路径

如果需要更灵活的路径处理,可以通过rewrite规则移除/api前缀:

location /api {
    rewrite ^/api(.*)$ $1 break;
    proxy_pass http://OTHER_SERVER_IP_ADDRESS;
}

这条rewrite规则会将所有以/api开头的路径,替换为去掉/api后的部分,再转发给后端,效果和方案一一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:55:24