NGINX: Cómo aumentar el tiempo de espera de las solicitudes

En el popular servidor web NGINX, de forma predeterminada, el tiempo de espera de las solicitudes son de 60 segundos. En algunos casos es posible que necesitemos aumentar este tiempo, para atender solicitudes de larga duración. Ya que si se supera este tiempo, el servidor NGINX devolverá un error 504.

Por lo que en esta entrada vamos a ver cómo aumentar el tiempo de espera de las solicitudes, utilizando las directivas proxy_read_timeout, proxy_connect_timeout y proxy_send_timeout, para solventar el error 504.

Aumentar tiempo de espera en solicitudes en NGINX

El fichero general de configuración de Nginx esta ubicado en la mayoría de los casos en la ruta /etc/nginx/nginx.conf. Si tenemos múltiples host virtuales, y queremos realizar el cambio solo en uno de ellos, debemos modificar el fichero correspondiente en /etc/nginx/sites-available.

Para modificar los valores, debemos añadir, en el caso de querer un timeout de cinco minutos para todos los proyectos:

http{
   ...
   proxy_read_timeout 300;
   proxy_connect_timeout 300;
   proxy_send_timeout 300;
   ...
}

O bien para un servidor un virtual host en particular:

server{
   ...
   proxy_read_timeout 300;
   proxy_connect_timeout 300;
   proxy_send_timeout 300; 
   ...
}

O bien, para una ubicación en particular:

location /subidas {
   ...
   proxy_read_timeout 300;
   proxy_connect_timeout 300;
   proxy_send_timeout 300; 
   ...
}

También podemos indicar valores mas altos, por ejemplo 1d para un día.

Podemos verificar la configuración de esta manera:

nginx -t

Y para aplicar los cambios:

#En sistemas antiguos
service nginx restart
#En sitemas con Systemd
systemctl restart nginx

Y de esta maenra ya lo tendríamos.

Espero que esta información os sea de utilidad en algún momento.

Para más información:

Module ngx_http_proxy_module