Un errore 504 viene normalmente visualizzato quando la connessione tra il browser e il server viene tenuta aperta per più di 180 secondi, causando un timeout HTTP.
Quando arrivano più richieste contemporaneamente o quasi, alcune potrebbero dover aspettare in fila per essere elaborate. Quindi, anche se il server sta elaborando le richieste, se l’elaborazione di ognuna di queste impiega molto tempo, può accumularsi un gran numero di richieste. Quando la coda diventa troppo lunga e i processi rimangono in attesa per troppo tempo, le richieste più vecchie vengono ignorate dal server, causando un errore 504 Gateway Timeout.
Come avviene per la maggior parte degli errori, il primo passo per la risoluzione del problema è quello di individuare la causa principale dell’errore.
Trovare e Risolvere un Errore 504 Gateway Timeout
Errori Durante l’Importazione
Se l’errore si verifica durante un’importazione, provate ad eseguire l’importazione direttamente sul server utilizzando WP-CLI o uno script locale PHP o Bash. Questo bypassa completamente la connessione HTTP, permettendovi di completare l’importazione senza un errore 504.
CDN di Terze Parti
Se il sito utilizza un CDN di terze parti oltre all’integrazione di Cloudflare di Kinsta, si può risolvere disabilitando temporaneamente o bypassando quel CDN.
Controllare il Percorso di Upload
Se cerchi di caricare un file ed hai un errore relativo al percorso (ad esempio aggiungendo e caricando un’immagine al contenuto), il percorso di upload potrebbe essere sbagliato. Questo si verifica più di frequente subito dopo la migrazione di un sito. Il percorso di caricamento potrebbe essere stato personalizzato sul precedente host. Si può fare una verifica nella tabella wp_options
o nella bacheca di WordPress(Impostazioni > Media > Caricamento file).
Nella bacheca di WordPress, se vedi le opzioni etichettate Memorizza gli upload in questa cartella e Percorso URL completo ai file, vuol dire che le impostazioni sono state personalizzate. I dati corrispondenti nel database si trovano in wp_options table
nelle opzioni upload_path
e upload_url_path
.
È possibile cancellare il valore di questi campi (sia nella bacheca di WordPress che nel database) per riportarli ai rispettivi valori predefiniti.
Dimensione di Caricamento dei File
Quando si cerca di caricare un file e si vede un errore relativo alla dimensione del file, per prima cosa bisogna controllare la dimensione del file (o dei file) che si sta cercando di caricare. Alcuni CDN limitano la dimensione dei file che è possibile caricare. Se si utilizza un CDN di terze parti, bisogna controllare la dimensione massima di caricamento nelle impostazioni del CDN e assicurarsi che gli upload siano inferiori al massimo. Oppure, se il sito richiede una dimensione dei file così grande, bisognerà regolare la dimensione massima di caricamento sul CDN (se possibile).
Database Corrotto
A volte, la causa di un errore 504 può essere un database corrotto. Se vedete errori che indicano un database corrotto (ad esempio, accedendo alla dashboard di WordPress, “Una o più tabelle del database non sono disponibili. Il database potrebbe aver bisogno di essere riparato”) leggete la nostra guida sulla riparazione di un database corrotto.
Temi e Plugin
Anche se non è così frequente, a volte la causa di un errore 504 può essere in un plugin o in un tema. Il modo migliore per verificarlo è quello di disattivare tutti i plugin e passare ad un tema predefinito. Se il problema si risolve, riattivate il tema e i plugin uno per uno, fino a quando il problema non si ripresenta. Una volta che avete determinato il plugin o il tema che genera l’errore, inviate una copia dell’errore allo sviluppatore del plugin o del tema in modo che possa aiutarvi a risolvere il problema.
Log degli Errori
Controllate l’error.log del vostro sito in MyKinsta (o scaricatelo via SFTP) per restringere il numero delle possibili cause dell’errore. Se non c’è nulla di evidente, può essere utile attivare WP-DEBUG
.
Traffico e Cache
Controllate il report Visitatori in MyKinsta analytics per vedere se il sito sta registrando un picco di traffico e/o un gran numero di richieste non memorizzate nella cache. In questo caso può essere utile aprire una chat con il nostro team di supporto, in modo che possiamo aiutarvi a stabilire se le richieste sono legittime e se possono essere necessarie più risorse (come PHP worker).
Aumentare il Numero di PHP Worker
In alcuni casi, potrebbe essere necessario aumentare il numero di PHP worker. Se non siete sicuri, il nostro team di supporto può aiutarvi a stabilire se sia necessario aggiungere PHP worker al vostro sito.
Limitare il Traffico
Se il sito sta registrando un picco di traffico o semplicemente ha più traffico in generale, e aumentare le risorse non è una soluzione percorribile, un’alternativa per evitare che arrivino troppe richieste tutte insieme al server è quella di implementare un sistema di accodamento come Queue-it, Queue-Fair, o Crowdhandler.