
Tengo una aplicación API First que tiene servidores separados para el front-end y el back-end.
La interfaz es solo un servidor NGINX que sirve a un sitio Angular estático. El backend es un servidor Play Scala.
Recientemente, para evitar tener que usar CORS más, hice que cualquier cosa enviada para /api
reenviar api.myapp.com
usara un bloque como este:
location /api/ {
proxy_pass https://api.myapp.com/;
}
Todo parece funcionar bien, excepto que de vez en cuando el servidor frontend deja de pasar solicitudes y sigue devolviendo 502, aunque algunas solicitudes llegan.
Si reinicio el servidor NGINX, todo está bien.
Si miro los registros de NGINX, veo un montón de errores 499 para las solicitudes /api.
[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"
Si miro los registros del backend, las solicitudes que devuelven 502 nunca llegan al backend.
¿NGINX estaría limitando algunas URL de alguna manera o pensando que el servidor backend ya no está por alguna razón?
Sé que en Apache para hacer algo similar tuve que configurar retry=0 para la directiva ProxyPass.