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

Nginx配置location /api反向代理返回404错误排查

配置错误说明

你的配置共存在两处问题,直接导致两类404现象:

  1. 根路径访问404
    443端口的server块中仅定义了/api路径的匹配规则,没有配置location /的通用匹配逻辑。Nginx收到根路径请求时找不到可匹配的处理规则,直接返回404。这和你测试的现象完全吻合:将location /api改为location /后,根路径存在匹配规则,即可正常响应。

  2. /api路径访问404
    反向代理路径转发规则不符合预期:当前proxy_pass http://webdemo:80;写法末尾未携带URI,Nginx转发时会把原始请求的完整路径(包含/api前缀)全量传给后端服务。例如访问my.domain.com/api/list,实际转发到后端的地址是http://webdemo:80/api/list,如果你的webdemo后端本身没有配置/api前缀下的路由,就会直接返回404。

修正配置参考

调整/etc/nginx/conf.d/default.conf中的443 server块内容如下即可:

server {
  server_name my.domain.com;
  listen 443 ssl;

  ssl_certificate /etc/letsencrypt/live/my.domain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/my.domain.com/privkey.pem;

  # 根路径处理规则,根据你的实际业务调整即可
  location / {
    # 示例:根路径为静态页面时的配置,若根路径也需要反向代理可替换为proxy_pass规则
    root /usr/share/nginx/html;
    index index.html index.htm;
  }

  # 末尾加斜杠,精确匹配/api前缀下的所有路径,避免误匹配/apixxx类路径
  location /api/ {
    # proxy_pass末尾加斜杠,转发时会自动剥离/api前缀
    # 例如访问/api/list会转发为http://webdemo:80/list
    proxy_pass http://webdemo:80/;
    # 补充反向代理常用请求头,保证后端获取到正确的客户端信息
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}
注意事项
  • 如果你需要后端服务保留/api路径前缀,proxy_pass后无需加末尾斜杠,但必须提前在webdemo服务中配置好/api前缀对应的路由规则。
  • 配置修改完成后,先执行nginx -t校验语法无报错,再执行nginx -s reload重载配置,新规则才会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:33:26