Actualmente, tenemos una cola de 3000 solicitudes.
location /api/v2 {
limit_req zone=bursted burst=3000;
include /etc/nginx/proxy.conf;
}
El límite de velocidad es de 10 peticiones por segundo.
limit_req_zone $limit zone=api_slow:10m rate=1r/s;
limit_req_zone $server_name zone=bursted:10m rate=10r/s;
El tiempo de espera Keep-Alive es de 30 segundos. En otras palabras, 2700 peticiones deberían ser rechazadas con el código de error 408 cada 30 segundos, cuando la cola esté llena.
reset_timedout_connection on;
client_body_timeout 10;
send_timeout 2;
keepalive_timeout 30;
En horas punta, no pude encontrar ninguna petición en los logs, que fuera rechazada con el código de error 408 por NGINX, debido a un timeout, mientras la petición esperaba en la cola para ser reenviada al contenedor de servlets. Sólo se rechazan con el código de error 503, que corresponde a la sobrecarga de la tasa de solicitudes.
delaying request, excess: 2958.320, by zone "bursted"
limiting requests, excess: 3000.730 by zone "bursted"
¿Rechaza NGINX las peticiones en esas colas por tiempo de espera, si se quedan colgadas demasiado tiempo? ¿Qué es este tiempo de espera? ¿Dónde se configura?