Ti è piaciuto l’articolo?
0
Ti è piaciuto l’articolo?
0

HTTP 504 Gateway Timeout: come risolvere l’errore 504

Nel richiamare un sito con il vostro browser, il server web è solitamente solo l’ultimo anello di un’intera catena di sistemi comunicativi che viene attivato durante l’elaborazione delle richieste HTTP inviate. I gateway e i server proxy regolano il reindirizzamento e quindi l’elaborazione della richiesta, in modo così da alleggerire il carico per il server web e per assicurare una trasmissione dei dati il più veloce possibile.

Prima di arrivare al server che si desidera contattare vengono attivate sempre diverse stazioni di comunicazione, ovvero i gateway; un processo che risulta pratico e funzionale. Se viene a mancare uno dei sistemi preposti, questo potrebbe portare al fallimento della richiesta. A questo punto il browser vi mostrerà un messaggio di errore invece che la pagina desiderata: “HTTP Error 504” o “Gateway Timeout”.

Cosa si nasconda dietro questo tipo di comunicazione lato server e come possa essere risolta (sia da lato client, e quindi come utente, sia da gestore del sito web), ve lo spieghiamo in questo articolo della nostra guida digitale.

HTTP 504: da dove deriva questo codice di stato del Hypertext Transfer Protocol

Il Hypertext Transfer Protocol è uno dei più importanti protocolli per la trasmissione di contenuti web. Agendo sul livello applicativo permette la comunicazione tra il client, che la maggior parte delle volte corrisponde al browser, e il server web del caso, all’interno del quale è archiviato il contenuto desiderato. L’HTTP trasmette a questo scopo l’ipertesto del sito web che il software client può trasformare a suo volta in testi, immagini e quant’altro. Lo scambio funziona tramite messaggi: tutto parte dal client che sottopone una richiesta HTTP. Il server invia una risposta accompagnata da un codice di stato, il quale si occupa di informare ad esempio dell’avvenuto successo dell’elaborazione della richiesta (HTTP 200) o, come nel caso dell’errore 504, di un tentativo fallito.

La risposta HTTP 504 comunica al client che l’insuccesso è dovuto al fatto che è scaduto il tempo per l’elaborazione della richiesta, perciò il messaggio riporta anche la classificazione “Gateway Timeout”. Il mittente del messaggio è il server all’interno di questa catena di comunicazione, il quale non è stato in grado di ottemperare il proprio ruolo come gateway o proxy poiché a sua volta non ha ottenuto alcuna risposta entro il tempo massimo da parte del prossimo server o service. Come venga mostrato il messaggio d’errore all’interno della finestra del browser, lo può decidere il gestore del sito web. Spesso i messaggi di errore 504 utilizzati sono i seguenti:

  • HTTP 504
  • HTTP Error 504: Gateway Timeout
  • Gateway Timeout (504)
  • Gateway Timeout Error
  • 504 Gateway Timeout
  • 504 Error
  • Error 504 Gateway Timeout

Come si arriva a un 504 Gateway Timeout?

La comunicazione di errore HTTP 504 compare sempre quando un server intermediario o una componente della rete non è in grado di rispondere a una richiesta di un browser o client in un determinato lasso di tempo. Come già accennato questo risulta dal fatto che il sistema in questione non abbia ricevuto a sua volta una risposta dal membro successivo di questa catena. I motivi per i quali questo possa accadere sono svariati:

  • Il server proxy o il router nella rete locale, sul quale fa affidamento l’utente, sono sovraccaricati e quindi vanno in blocco e non funzionano più. In questo caso l’errore 504 si limita raramente a un singolo progetto web, è bensì più probabile che comparirà anche tentando di richiamare altre pagine.
  • Il sito web richiamato si affida ad un server proxy per l’ottimizzazione delle proprie performance, che però è sovraccaricato e quindi bloccato e perciò non può più essere raggiunto dagli altri elementi della catena, risultando perciò nuovamente in un Gateway Timeout.
  • Delle impostazioni sbagliate del proxy, sia da lato client sia da lato server, potrebbero in egual modo essere responsabili della comparsa del messaggio di errore HTTP 504.
  • Il problema riguarda uno o più server di un provider di servizi Internet (IPS) o di un’azienda. L’impossibilità di essere raggiunti/o ha a che fare con le impostazioni del router o del proxy del browser dell’utente o del gestore del sito web.

504 Gateway Timeout: risoluzione del problema

Quando il sito richiamato non si carica e compare al suo posto un messaggio di errore 504, è un qualcosa di particolarmente fastidioso per ogni utente. E se per un motivo o per un altro avete particolare necessità di visualizzarlo, più tempo sarà necessario per la risoluzione del problema, più velocemente il fastidio si trasformerà in frustrazione. In particolare se lavorate con un’applicazione cloud e non avete pronta a disposizione alcuna variante offline, siete costretti a ricorrere ad una soluzione vicina nel tempo.

Ma anche se siete voi stessi ad essere responsabili di un progetto web che risulta irraggiungibile per i vostri utenti a causa di problemi legati al Gateway Timeout, il discorso rimane lo stesso. Una reazione veloce è importante per riuscire a limitare la perdita di traffico sul vostro sito web e la conseguente perdita economica.

504 Gateway Timeout: le possibili soluzioni per gli utenti

Se vi imbattete in un errore HTTP 504 durante le vostre attività sul web, potete stare certi che lo scenario che viene a crearsi non è intenzionale, come è invece per il codice di stato 503 che corrisponde a dei lavori di manutenzione. Il Gateway Timeout è quasi sempre un problema legato al server del gestore del sito web o addirittura del provider. Tuttavia come alluso precedentemente è comunque possibile che il vostro router o che un server proxy da voi utilizzato sia imputabile per la comparsa della comunicazione d’errore. Per questo motivo avete diverse possibilità per tentare di risolvere il problema HTTP 504:

Soluzione n.1: provare a richiamare nuovamente l’applicazione web in questione

Nella maggior parte dei casi l’errore 504 compare solo per un delimitato periodo di tempo. Un’opzione veloce e facile per risolvere il 504 Gateway Timeout consiste perciò nel richiamare nuovamente il sito web in oggetto. Per questo motivo basta un clic sul tasto apposito nel vostro browser nella barra degli indirizzi, o al suo fianco. Alternativamente potete anche premere il tasto [F5] della vostra tastiera o la combinazione di tasti [CTRL] + [R], o reinserendo direttamente l’URL.

Soluzione n.2: riavviate tutti i dispositivi di rete

Nel caso in cui il timeout sia da ricondurre alla vostra rete di casa, potete risolvere il problema riavviando i vostri dispositivi di rete. È possibile che il vostro modem, router e quant’altro siano semplicemente configurati male o che per altri motivi non funzionino più come dovrebbero e che per questo motivo non siano più in grado di elaborare la richiesta HTTP del browser nel tempo prestabilito. Un segnale tipico che si tratti di un problema con i propri dispositivi è il fatto che la comunicazione d’errore HTTP 504 non compare solamente con un sito specifico, ma anche con altri.

Soluzione n.3: verificare le impostazioni del server proxy

Se utilizzate un server proxy per le vostre attività online allora dovreste verificare assolutamente la sua configurazione, nel caso in cui l’errore 504 non si sia risolto refreshando la pagina o riavviando il router. Da un lato può essere che la configurazione sia difettosa, dall’altra potrebbe essere tra le altre cose necessario scegliere un altro proxy, poiché il server utilizzato fino ad ora non è più disponibile o ha riscontrato problemi tecnici, anche se così facendo potrebbe capitare che ci si imbatta in comunicazioni interne come “server proxy non risponde” o “connessione rifiutata dal server proxy”. Nella nostra guida scoprite come si possano adeguare le impostazioni proxy direttamente nel browser.

Soluzione n.4: cambiare il server DNS

Anche i server DNS utilizzati dal router possono essere responsabili del 504 Gateway Timeout. Il vostro provider vi attribuisce direttamente un server primario e uno secondario ogni volta che vi collegate a Internet; tuttavia avete anche la possibilità di scegliere personalmente la risoluzione dei nomi. Il successo di entrambe queste opzioni non è garantito al cento per cento, rimane tuttavia possibile che avvenga un timeout mentre si tenta di mettersi in contatto con il server DNS. In un simile scenario può rappresentare la soluzione ottimale quella di cambiare per un altro server DNS libero e pubblico. Nella Digital Guide scoprite quali sono i passaggi necessari da compiere per poter cambiare il server DNS.

Soluzione n.5: contattare il gestore delle pagine e/o il provider

Chi non riesce a risolvere il problema mettendo mano ai propri hardware e software dovrebbe rivolgersi allora al gestore del sito web o all’amministratore responsabile. Se la causa dell’errore HTTP 504 è da ricondurre al progetto web, in questo modo scoprirete subito a che cosa è dovuto il problema e quando è previsto che il sito web torni a disposizione. Se invece l’errore riguarda solo voi o un determinato numero di utenti, allora questo è un segno che molto probabilmente si tratti di un server del vostro Internet Service Provider ad essere interessato. In questo caso non vi rimane alcuna scelta che mettervi in contatto con loro.

Consiglio

Se il sito web al quale state cercando di accedere è molto conosciuto e visitato, allora potrebbe tornarvi utile una visita ad un social network come Twitter. In queste piattaforme social le aziende tengono di solito informati i propri utenti nel caso in cui dovessero imbattere in un problema; scoprendo così se anche altri utenti abbiano riscontrato lo stesso problema o meno. In questo caso gli hashtag come #websitedown, ad esempio #facebookdown, vanno per la maggiore.

Soluzione n.6: tornare a visitare il sito web a distanza di tempo

Non ha importanza quale server della catena di comunicazione sia quello interessato e per quale motivo esso non sia in grado di far avanzare la richiesta: alcune contromisure come quelle sopraelencate a volte non sono sufficienti a risolvere il problema, e non rimane perciò che attendere fino a quando il gestore del sito web o il corrispettivo provider non avrà risolto il problema. Se il sito web continua a mostrare l’errore per un tempo prolungato o a intervalli regolari, allora è cosa saggia quella di mettersi l’animo in pace e rimandare la visita a un secondo momento.

Errore 504: le possibili soluzioni per i gestori dei siti web

In quanto gestori di un progetto web volete chiaramente offrire ai vostri visitatori il miglior contenuto e una facilità di utilizzo migliori possibili, e, ancora, anche una elevata accessibilità del sito web. Un ambiente di hosting stabile e la protezione dai malware, dallo spam e da compagnia bella sono perciò tanto importanti quanto una reazione veloce nel momento in cui dovessero sopraggiungere dei problemi tecnici come ad esempio il 504 Gateway Timeout. Inoltre è importante anche riconoscere l’errore nel minor tempo possibile e iniziare a indagarne le cause e a cercare una soluzione adeguata senza perdere tempo.

Soluzione n.1: aumentare le risorse a disposizione del proxy server

In molti casi è proprio il server proxy la causa dell’errore HTTP 504. Se decidete di utilizzare comunque un proxy per il vostro sito web per alleggerire il carico sul server web, questo potrebbe però appunto portare ad un Gateway Timeout. Questa eventualità è solita capitare soprattutto quando il progetto cresce in maniera decisa in breve tempo e il numero di visitatori schizza alle stelle: il proxy si troverà allora privo di quelle risorse necessarie per l’elaborazione delle richieste HTTP. Lo stesso vale per i picchi di carico episodici, che sono da ricondurre a dei particolari periodi o eventi stagionali, quali possono essere ad esempio gli acquisti di natale.

Se quindi i vostri visitatori sono aumentati, e il messaggio d’errore 504 compare quando si tenta di richiamare il sito web nei momenti durante i quali il traffico è più concentrato, questo è allora un chiaro segno di sovraccarico del server proxy. La soluzione consiste nell’acquistare risorse hardware aggiuntive o richiederle al vostro provider. Meglio ancora sarebbe provvedervi preventivamente, così da non incappare mai in un timeout a causa di un capacità di calcolo non adeguata.

Tutto ciò risulta particolarmente facile se decidete di affidarvi ad una soluzione flessibile sin dall’inizio come il cloud hosting. Così facendo dotate il vostro server proxy in maniera duratura o temporanea di maggior potenza, mettendolo nella condizione di elaborare tutte le richieste HTTP in entrata senza problemi e soprattutto senza dover incappare in errori 504.

Soluzione n.2: aggiustare le impostazioni del server proxy

Non tutti i problemi relativi al server proxy hanno a che fare con la mancanza di risorse. È infatti egualmente possibile che questo sia semplicemente mal configurato e che per questo motivo le richieste del client non funzionino come desiderato. Perciò l’errore 504 Gateway Timeout dei server proxy NGINX, da ricondurre alle configurazioni, è ad esempio un problema spesso ricorrente. Ma proprio per questo risulta risolvibile nella maggior parte dei casi attraverso dei piccoli accorgimenti nei file di configurazione. Nel caso di NGINX aprite semplicemente il file nginx.conf e aggiungete le seguenti righe:

proxy_connect_timeout  600;
proxy_send_timeout    600;
proxy_read_timeout    600;
send_timeout      600;

Un’insorgenza dell’errore HTTP 504 è altrettanto possibile se utilizzate NGINX in combinazione con FastCGI (php-gpm). Ma anche in questo caso vi basteranno un paio di modifiche per liberarvi del problema: aumentate per prima cosa il valore di “max_execution_time” nel file fpm/php.ini e importate questo valore anche nella variabile “request_terminate_timeout” nel file fpm/pool.d/www.conf. Una volta fatto, cercate nel file nginx.conf il blocco “location ~ \.php$” e aggiungete la seguente riga:

fastcgi_read_timeout 300;

Entrambe le soluzioni richiedono un riavvio di NGINX per risolvere il problema relativo al 504 Gateway Timeout, permettendo così di rendere effettive le modifiche apportate:

service nginx reload

Soluzione n.3: verifica del Content Management System e del database

Non sempre la causa di un 504 Gateway Timeout è da ricondurre necessariamente al software del server. L’eccedenza del tempo per l’elaborazione HTTP può anche essere dovuta ai Content Management System, ai database o ad altre applicazioni server malfunzionanti. Se i vostri visitatori devono avere a che fare con notifiche di errore, allora sarebbe da considerare la possibilità che ci siano dei malfunzionamenti nei sistemi. Infatti anche nel caso dei server proxy la causa più comune è proprio quella legata a delle configurazioni inadeguate, che vanno trovate e sistemate. Un’ulteriore possibilità, concernente i CMS, è quella legata all’utilizzo di un plug-in difettoso o superato, che dovete quindi disattivare o aggiornare.

Consiglio

Per proteggervi al meglio dall’errore 504 dovreste eseguire regolarmente dei back-up di tutti i vostri database e CMS e installare prontamente gli aggiornamenti pubblicati. Nella scelta dell’estensione sono da tenere in considerazione fattori come l’attualità (nel senso di quanto recente sia l’ultimo aggiornamento), l’affidabilità e la compatibilità. Inoltre è consigliabile non esagerare con i plug-in, così che il Content Management System non si arroghi più risorse di quelle che avevate previsto.

Soluzione n.4: contattare il provider dell’hosting o dell’Internet Service

Se avete tentato, senza successo, di risolvere il 504 Gateway Timeout con le soluzioni appena proposte, allora è probabile che l’errore non sia riconducibile a nessuna delle vostre applicazioni e che quindi ricada al di fuori della vostra zona di competenze. In questo caso l’errore dipende probabilmente da un server all’interno della catena di comunicazione gestito dal vostro provider di servizi Internet o dal provider dell’hosting. L’unica possibilità che vi resta è quella di contattarli, pregandoli di risolvere il problema. A quel punto vale anche la pena di richiedere il loro supporto nel caso in cui il vostro progetto web dovesse essere stato infettato da malware o se venisse costantemente tempestato da spam.

Protocollo HTTP