
我有一個 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 。