我有一个 API First 应用程序,它有用于前端和后端的单独服务器。
前端只是一个为静态 Angular 站点提供服务的 NGINX 服务器。后端是一个 Play Scala 服务器。
最近,为了避免再使用 CORS,我使用如下块将所有要发送的内容/api
转发给:api.myapp.com
location /api/ {
proxy_pass https://api.myapp.com/;
}
一切似乎都运行良好,只是偶尔前端服务器会停止传递请求,尽管有些请求已经通过,但仍然返回 502。
如果我重新启动 NGINX 服务器,一切都正常。
如果我查看 NGINX 日志,我会看到 /api 请求出现一堆 499 错误。
[15/Jan/2017:22:31:18 +0000] "GET /api/1/users/tzXWM4hNAHUvT9SfA-pAGA/organizations?v=3 HTTP/1.1" 499 0 "https://app.myapp.com/dashboard" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "10.225.158.152"
如果我查看后端日志,返回 502 的请求实际上从未到达后端。
NGINX 是否会以某种方式限制某些 URL 的速度,或者认为后端服务器由于某种原因消失了?
我知道在 Apache 中做类似的事情我必须为 ProxyPass 指令设置 retry=0。