Ecco come risolvere l’errore 504 Gateway Timeout con nginx in modalità standalone o proxy

Una configurazione superficiale di nginx e PHP possono portare problemi su operazioni più complesse e lunghe, in particolare quando uno script impiega più di un certo numero di secondi per eseguire le operazioni, facendo restituire un messaggio d’errore alla pagina identificato con errore 504. I messaggi in base alla configurazione che potremo trovare sono i seguenti:

  • “504 Gateway Timeout”
  • “504 Gateway Time-Out”
  • “504 Gateway Timeout NGINX”
  • “Nginx 504 Gateway Timeout”
  • “HTTP 504 Gateway Timeout”
  • “HTTP 504 Error”
  • “HTTP 504”
  • “Gateway Timeout (504)”

Vediamo come procedere per correggere l’errore 504 Gateway Timeout con Nginx.

In questa guida interverremo su un sistema ubuntu/debian con nginx+PHP-FPM (PHP 5.x). Prima di tutto dobbiamo modificare max_execution_time nel file /etc/php5/fpm/php.ini di PHP-FPM portandolo a 600 o 900.

Ora cerchiamo la stringa request_terminate_timeout nel file /etc/php5/fpm/pool.d/www.conf e impostiamo 900

ora nel blocco del vhost di nginx dobbiamo aggiungere
questa può cambiare. Ad esempio potrestre trovare qualcosa come questo

o questo

ovviaemente questi sono puramente esempi, dovrete inserire fastcgi_read_timeout 900; al posto giusto. Infine riavviamo i servizi

Se usiamo invece nginx come reverse proxy, nel file nginx.conf aggiungiamo queste stringhe

anche in questo caso diamo un