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

Nginx反向代理配置后指定路径返回404 Not Found求助

Nginx反向代理配置后指定路径返回404 Not Found求助

嗨,我来帮你排查下这个404问题,先理清楚你的场景:你在/etc/nginx/conf.d/test.conf里配置了这样的server块:

server {
    listen 80;
    server_name test;
    root /var/www;
    location /some/path/ {
        proxy_pass http://www.example.com/link/;
    }
}

执行sudo nginx -s reload后,访问服务器IP根路径能看到默认欢迎页,但访问http://1xx.xx.xx.xx/some/path/时返回404,大概率是这几个原因导致的,一个个来排查:

  • server_name匹配问题:你的server_name设为test,但访问用的是IP地址,这时候Nginx可能没匹配到这个server块,而是走了默认的server配置(比如默认的default.conf)。建议修改listen指令加上default_server,同时把server_name改成支持IP访问的形式:

    listen 80 default_server;
    server_name test _; # "_"匹配任何主机名,包括IP
    

    改完后重新重载Nginx,确保访问IP时走的是你配置的这个server块。

  • proxy_pass的斜杠配置陷阱:你当前的proxy_pass http://www.example.com/link/末尾带了斜杠,这会让Nginx把location /some/path/匹配到的路径部分(也就是/some/path/)替换成/link/,实际转发的请求是http://www.example.com/link/。如果后端服务器上/link/这个路径本身不存在,自然会返回404。

    • 如果你想让请求转发到http://www.example.com/link/some/path/,那把proxy_pass末尾的斜杠去掉:
      proxy_pass http://www.example.com/link;
      
    • 如果后端确实只有/link/这个路径,那先确认后端服务正常,比如在服务器上执行curl http://www.example.com/link/,看是否能正常返回内容。
  • 查看Nginx错误日志找线索:直接看错误日志能更快定位问题,执行tail -f /var/log/nginx/error.log,然后刷新返回404的页面,日志里会显示实际转发的URL、后端返回的状态码等细节,帮你精准定位哪里出问题。

先按这几步排查,应该能解决问题~

备注:内容来源于stack exchange,提问作者G M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:38:15