Nginx 偶尔会在某些 api/* 路由上返回 403 Forbidden

Nginx 偶尔会在某些 api/* 路由上返回 403 Forbidden

我使用 Nginx 作为 node.js 服务器的反向代理,并且具有以下路由,以以下内容开头:

- /api/...
- /auth/...

如果我以隐身模式打开我的网站并尝试提交表单以使用路由将其持久保存到服务器,'/api/user'我会收到 403 Forbidden。我很困惑,在我运行 vagrant 和 nginx 的本地计算机上,我从来没有遇到过这样的问题。在生产中,我也设法在上述路由上成功提交了几次表单,但从未在隐身模式下提交过。

我仅将某些路由代理到 nodejs,如下所示:

location ~ ^/(api|user|auth|socket.io-client|sitemap.xml) {
  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;
  proxy_set_header   Host                   $http_host;
  proxy_set_header   X-NginX-Proxy    true;
  proxy_set_header Upgrade $http_upgrade;
  proxy_ssl_session_reuse off;
  proxy_redirect off;
  proxy_set_header Connection 'upgrade';
  proxy_cache_bypass $http_upgrade;
  proxy_http_version 1.1;
  proxy_pass_header  X-CSRFToken;
  add_header X-Frame-Options SAMEORIGIN;
  sendfile  off;
  proxy_pass         http://nodejs_upstream;
}

我检查了上述'/api/user'块是否正确捕获了路由,所以也许它与 nodejs 服务器权限有关,但我卡在了这一点上。感谢您的帮助。

相关内容