Cos’e’ l’errore 502 Bad Gateway
L’errore 502 Bad Gateway e’ uno dei codici di stato HTTP piu’ temuti da chi gestisce un sito web. Quando compare, significa che un server che funge da gateway o proxy ha ricevuto una risposta non valida dal server upstream a cui si e’ rivolto per soddisfare la richiesta dell’utente.
In parole semplici, il tuo browser invia una richiesta a un server (ad esempio Nginx o un CDN come Cloudflare), il quale a sua volta la inoltra a un altro server (il cosiddetto server upstream, come Apache o PHP-FPM). Se questo secondo server risponde con qualcosa di incomprensibile, o non risponde affatto, il primo server restituisce l’errore 502 al visitatore.
Il codice 502 appartiene alla famiglia degli errori 5xx, cioe’ errori lato server. Questo significa che il problema non dipende dal visitatore, ma dall’infrastruttura su cui il sito e’ ospitato. Per il proprietario del sito, un errore 502 rappresenta un problema critico: i visitatori non possono accedere ai contenuti, le vendite si bloccano e la reputazione del brand ne risente.
Il messaggio puo’ apparire in diverse varianti a seconda del browser e del server:
- 502 Bad Gateway (la versione standard)
- 502 Bad Gateway nginx
- HTTP Error 502
- 502 Proxy Error
- 502 Server Error
- Error 502
- Bad Gateway: The proxy server received an invalid response from an upstream server
Indipendentemente dalla forma in cui si presenta, il significato e’ sempre lo stesso: la comunicazione tra i server che compongono la catena di servizio si e’ interrotta.
Differenza tra errore 502, 503 e 504
Prima di approfondire le cause e le soluzioni dell’errore 502 Bad Gateway, e’ utile capire in cosa si differenzia dagli altri errori 5xx piu’ comuni, ovvero il 503 e il 504.
Errore 502 Bad Gateway
Come abbiamo visto, l’errore 502 indica che un server intermedio (gateway o reverse proxy) ha ricevuto una risposta non valida dal server a monte. Il server upstream potrebbe essere andato in crash, aver restituito dati corrotti o aver chiuso la connessione in modo anomalo.
Errore 503 Service Unavailable
L’errore 503 significa che il server e’ temporaneamente non disponibile, di solito a causa di sovraccarico o manutenzione programmata. A differenza del 502, qui il server upstream potrebbe essere perfettamente raggiungibile, ma ha deciso di non accettare nuove richieste. Spesso include un header Retry-After che indica al client quando riprovare.
Errore 504 Gateway Timeout
L’errore 504 e’ simile al 502, ma con una differenza cruciale: il server intermedio non ha ricevuto alcuna risposta dal server upstream entro il tempo limite. Mentre nel 502 la risposta arriva ma e’ invalida, nel 504 la risposta non arriva proprio. Tipicamente e’ causato da script PHP che impiegano troppo tempo o da un server upstream sovraccarico che non riesce a rispondere.
In sintesi:
- 502: risposta ricevuta, ma non valida
- 503: server sovraccarico o in manutenzione, non accetta richieste
- 504: nessuna risposta ricevuta entro il timeout
Conoscere queste differenze e’ fondamentale per diagnosticare correttamente il problema e applicare la soluzione giusta.
Cause principali dell’errore 502
L’errore 502 Bad Gateway puo’ avere molteplici cause. Analizziamo le piu’ frequenti, partendo da quelle piu’ comuni nella pratica quotidiana di gestione server.
Server upstream non raggiungibile
La causa piu’ frequente dell’errore 502 e’ che il server applicativo (upstream) non e’ in esecuzione o non e’ raggiungibile. Ad esempio, se Nginx e’ configurato per inoltrare le richieste PHP a PHP-FPM, ma il servizio PHP-FPM si e’ arrestato, Nginx restituira’ un errore 502 perche’ non riesce a comunicare con il backend.
Questo puo’ accadere per diversi motivi:
- Il processo PHP-FPM e’ andato in crash a causa di un errore fatale
- Il servizio e’ stato fermato manualmente e non riavviato
- Un aggiornamento del sistema ha modificato la configurazione
- Il socket Unix o la porta TCP su cui ascolta il backend e’ cambiato
Timeout di PHP-FPM
Quando uno script PHP impiega troppo tempo per completare l’esecuzione, PHP-FPM puo’ terminare il processo worker. Se il reverse proxy (Nginx o Apache) riceve una chiusura improvvisa della connessione, interpreta questa situazione come una risposta non valida e genera un errore 502.
I timeout piu’ rilevanti sono:
max_execution_timein php.ini (tempo massimo di esecuzione dello script)request_terminate_timeoutnella configurazione del pool PHP-FPMfastcgi_read_timeoutnella configurazione di Nginx
Se questi valori non sono allineati, il processo PHP potrebbe essere terminato prima che Nginx si aspetti la fine della comunicazione, causando l’errore.
Problemi con il reverse proxy (Nginx/Apache)
In architetture dove Nginx funge da reverse proxy per Apache (configurazione molto comune nei pannelli di controllo come Plesk e cPanel), l’errore 502 puo’ derivare da problemi nella comunicazione tra i due web server.
Le cause tipiche includono:
- Apache e’ in crash o non risponde sulla porta configurata
- I buffer di Nginx sono troppo piccoli per le risposte di Apache
- Header HTTP troppo grandi (common con cookie di sessione complessi)
- Configurazione proxy_pass errata in Nginx
In questi casi, e’ essenziale controllare i log di entrambi i web server per individuare il punto esatto in cui la comunicazione si interrompe.
CDN o Cloudflare con problemi
Se il tuo sito utilizza un CDN (Content Delivery Network) come Cloudflare, Fastly o AWS CloudFront, l’errore 502 potrebbe originare dalla rete CDN stessa. Cloudflare, ad esempio, mostra una pagina specifica con l’intestazione “Error 502 Bad Gateway – Cloudflare” quando non riesce a raggiungere il server di origine.
In questo scenario, il problema potrebbe essere:
- Il server di origine e’ down o sovraccarico
- Il CDN non riesce a stabilire una connessione SSL con il server di origine
- Le regole del firewall del server bloccano gli IP del CDN
- Un’interruzione a livello di rete tra il CDN e il server di origine
Sovraccarico del server
Un improvviso picco di traffico puo’ esaurire le risorse del server (CPU, RAM, connessioni disponibili), impedendo al server upstream di gestire le richieste. Quando PHP-FPM esaurisce tutti i worker disponibili, le nuove richieste vengono messe in coda. Se la coda si riempie, le richieste vengono rifiutate e Nginx restituisce un errore 502.
Questa situazione e’ particolarmente frequente su server condivisi o VPS con risorse limitate, dove un singolo sito puo’ consumare tutte le risorse disponibili durante un picco di traffico o un attacco DDoS.
Firewall o mod_security che blocca le richieste
I Web Application Firewall (WAF) come ModSecurity possono bloccare richieste legittime se le regole sono troppo restrittive. Quando ModSecurity blocca una richiesta a livello del backend, il server upstream potrebbe restituire una risposta che il reverse proxy interpreta come non valida, generando un errore 502.
Anche i firewall di rete (iptables, firewalld, CSF) possono causare il problema se bloccano la comunicazione tra i componenti interni del server, ad esempio tra Nginx e PHP-FPM o tra un container Docker e l’host.
Come risolvere l’errore 502 Bad Gateway
Ora che conosciamo le cause, vediamo come risolvere l’errore 502 in modo sistematico. Partiamo dalle soluzioni piu’ semplici e veloci, per poi passare a quelle piu’ tecniche.
Ricaricare la pagina e svuotare la cache
Il primo passo e’ sempre il piu’ semplice: ricarica la pagina. L’errore 502 puo’ essere temporaneo, causato da un breve riavvio del server o da un picco di carico momentaneo. Prova con Ctrl+F5 (o Cmd+Shift+R su Mac) per forzare il refresh ignorando la cache del browser.
Se il problema persiste, svuota completamente la cache del browser e dei DNS locali:
- Cancella cache e cookie dal browser
- Su Windows, esegui
ipconfig /flushdnsnel Prompt dei comandi - Su Mac/Linux, esegui
sudo dscacheutil -flushcacheosudo systemd-resolve --flush-caches - Prova ad accedere al sito da un altro browser o dalla navigazione in incognito
Verificare lo stato del server
Se sei il proprietario o l’amministratore del server, il passo successivo e’ verificare che tutti i servizi siano in esecuzione. Collegati via SSH e controlla lo stato dei servizi principali:
# Controlla lo stato di Nginx
sudo systemctl status nginx
# Controlla lo stato di Apache
sudo systemctl status apache2 # Debian/Ubuntu
sudo systemctl status httpd # CentOS/RHEL
# Controlla lo stato di PHP-FPM
sudo systemctl status php8.2-fpm # adatta alla tua versione
# Controlla l'uso delle risorse
top -bn1 | head -20
free -h
df -h
Se uno dei servizi e’ fermo (stato “inactive” o “failed”), hai trovato la causa. Prima di riavviarlo, pero’, controlla i log per capire perche’ si e’ fermato.
Controllare i log di errore
I log sono la risorsa piu’ preziosa per diagnosticare un errore 502. Ecco dove trovarli:
# Log errori di Nginx
tail -50 /var/log/nginx/error.log
# Log errori di Apache
tail -50 /var/log/apache2/error.log
# Log di PHP-FPM
tail -50 /var/log/php8.2-fpm.log
# Log di sistema
journalctl -u nginx --since "10 minutes ago"
journalctl -u php8.2-fpm --since "10 minutes ago"
I messaggi piu’ comuni nei log Nginx in caso di errore 502 sono:
connect() failed (111: Connection refused)– PHP-FPM non e’ in ascoltoupstream prematurely closed connection– il backend ha chiuso la connessionerecv() failed (104: Connection reset by peer)– connessione resettatano live upstreams– nessun server backend disponibile
Riavviare PHP-FPM o il web server
Se i log non rivelano un problema strutturale, un riavvio dei servizi spesso risolve errori 502 temporanei:
# Riavvia PHP-FPM
sudo systemctl restart php8.2-fpm
# Riavvia Nginx
sudo systemctl restart nginx
# Riavvia Apache (se usato come backend)
sudo systemctl restart apache2
# In alternativa, riavvia tutti insieme
sudo systemctl restart php8.2-fpm nginx apache2
Dopo il riavvio, verifica che i servizi siano tornati attivi con systemctl status e controlla immediatamente i log per assicurarti che non si verifichino nuovi errori.
Aumentare i timeout di proxy
Se l’errore 502 si verifica durante operazioni pesanti (importazioni, generazione di report, aggiornamenti), potrebbe essere necessario aumentare i timeout. In Nginx, modifica il file di configurazione del virtual host:
# Nella sezione location del virtual host Nginx
location / {
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;
# Per FastCGI (PHP-FPM diretto)
fastcgi_read_timeout 300;
fastcgi_send_timeout 300;
fastcgi_connect_timeout 300;
# Buffer piu' grandi per risposte complesse
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
}
Ricorda di allineare anche il max_execution_time in php.ini e il request_terminate_timeout nel pool PHP-FPM, altrimenti PHP potrebbe terminare prima che Nginx raggiunga il suo timeout.
Disabilitare temporaneamente CDN/Cloudflare
Se utilizzi Cloudflare o un altro CDN, prova a metterlo in pausa temporaneamente per verificare se l’errore 502 e’ causato dalla rete CDN o dal server di origine:
- In Cloudflare: vai su Overview e clicca “Pause Cloudflare on Site”
- In alternativa, imposta il DNS record da “Proxied” (nuvola arancione) a “DNS only” (nuvola grigia)
- Attendi qualche minuto per la propagazione DNS e riprova
Se il sito funziona senza CDN, il problema e’ nella comunicazione tra CDN e server. Verifica che il certificato SSL del server sia valido e che il firewall non blocchi gli IP del CDN.
Errore 502 su WordPress: soluzioni specifiche
WordPress e’ il CMS piu’ diffuso al mondo, e l’errore 502 Bad Gateway e’ una delle problematiche piu’ frequenti che i suoi utenti devono affrontare. Ecco le soluzioni specifiche per WordPress.
Plugin problematici
I plugin WordPress possono causare errori 502 in diversi modi: consumo eccessivo di memoria, conflitti tra plugin, codice difettoso che manda in crash PHP-FPM. Per verificare se un plugin e’ la causa:
- Accedi al server via FTP o SSH
- Rinomina la cartella
wp-content/pluginsinwp-content/plugins_bak - Ricarica il sito: se funziona, il problema e’ in un plugin
- Rinomina la cartella originale e disattiva i plugin uno alla volta per trovare il colpevole
In alternativa, via WP-CLI:
# Disattiva tutti i plugin
wp plugin deactivate --all
# Riattivali uno alla volta
wp plugin activate plugin-name
Tema difettoso
Anche il tema puo’ causare un errore 502, soprattutto dopo un aggiornamento. Per verificare, passa temporaneamente a un tema predefinito via SSH:
# Attiva il tema Twenty Twenty-Four
wp theme activate twentytwentyfour
Se il sito torna a funzionare, il problema e’ nel tema. Contatta lo sviluppatore o considera di cambiarlo.
Limiti di memoria PHP
WordPress e i suoi plugin possono richiedere molta memoria. Se il limite e’ troppo basso, PHP potrebbe andare in crash generando un errore 502. Aumenta il limite in wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
E anche in php.ini:
memory_limit = 512M
max_execution_time = 300
max_input_vars = 3000
File .htaccess corrotto
Un file .htaccess corrotto puo’ causare conflitti con il web server. Rinominalo temporaneamente:
mv .htaccess .htaccess.bak
Poi rigenera un file .htaccess pulito accedendo a Impostazioni > Permalink nel pannello WordPress e cliccando “Salva modifiche”.
Aggiornamento del core WordPress
Se l’errore 502 e’ comparso dopo un aggiornamento di WordPress, potrebbe esserci un’incompatibilita’ con la versione PHP del server. Verifica che la versione PHP sia compatibile con la versione di WordPress installata e, se necessario, aggiorna PHP dal pannello di controllo del tuo hosting.
Se hai bisogno di assistenza specializzata per risolvere errori WordPress critici come il 502, il servizio SoccorsoWP di G Tech Group offre interventi rapidi da parte di tecnici esperti.
Come prevenire l’errore 502
Prevenire e’ sempre meglio che curare. Ecco le migliori pratiche per evitare che l’errore 502 Bad Gateway si presenti.
Monitoraggio proattivo del server
Implementa un sistema di monitoraggio che controlli costantemente lo stato dei servizi e ti avvisi immediatamente in caso di problemi. Strumenti come UptimeRobot, Hetrixtools o Nagios possono monitorare il tuo sito e inviarti notifiche via email, SMS o Telegram quando rilevano un downtime.
Configura anche il monitoraggio delle risorse di sistema (CPU, RAM, disco, connessioni) per individuare i colli di bottiglia prima che causino errori.
Risorse server adeguate
Se il tuo sito riceve un traffico significativo o esegue operazioni pesanti, assicurati che il server abbia risorse sufficienti. Un VPS (Virtual Private Server) offre risorse dedicate e scalabili, a differenza di un hosting condiviso dove le risorse sono limitate e condivise con altri siti.
Per siti ad alto traffico o applicazioni mission-critical, un server dedicato garantisce il massimo delle prestazioni e del controllo. G Tech Group offre soluzioni Cloud VPS ad alta disponibilita’ che assicurano uptime e ridondanza anche in caso di guasti hardware.
Configurazione ottimizzata di PHP-FPM
Una configurazione corretta del pool PHP-FPM e’ fondamentale per prevenire gli errori 502. Ecco i parametri chiave da ottimizzare:
# /etc/php/8.2/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
request_terminate_timeout = 300
Il valore di pm.max_children dipende dalla RAM disponibile. Una formula approssimativa: dividi la RAM disponibile per il consumo medio di un processo PHP (tipicamente 30-50 MB). Ad esempio, con 4 GB di RAM dedicati a PHP: 4000 / 40 = 100 processi massimi.
Caching efficace
Implementa una strategia di caching a piu’ livelli per ridurre il carico sul server:
- OPcache: cache del bytecode PHP (riduce il tempo di compilazione)
- Object cache: Redis o Memcached per le query al database
- Page cache: pagine HTML pre-generate (WP Rocket, WP Super Cache, FastCGI cache)
- CDN: distribuisci i contenuti statici sulla rete globale
Un buon sistema di cache puo’ ridurre il carico sul server del 90% o piu’, rendendo molto improbabile un errore 502 causato da sovraccarico.
Aggiornamenti regolari
Mantieni aggiornati tutti i componenti del tuo stack: sistema operativo, web server, PHP, CMS, plugin e temi. Gli aggiornamenti includono spesso fix per bug che possono causare crash e, di conseguenza, errori 502. Esegui sempre un backup completo prima di ogni aggiornamento.
Configurazione corretta dei buffer Nginx
Header HTTP troppo grandi possono causare errori 502. Assicurati che i buffer di Nginx siano dimensionati correttamente:
# In nginx.conf o nel virtual host
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
large_client_header_buffers 4 32k;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
Protezione da attacchi DDoS
Gli attacchi DDoS possono saturare le risorse del server e causare errori 502 a catena. Proteggi il tuo server con:
- Rate limiting a livello di Nginx (
limit_req_zone) - Firewall applicativo (ModSecurity con regole OWASP)
- Servizio anti-DDoS (Cloudflare, AWS Shield)
- Fail2ban per bloccare IP sospetti
FAQ su Errore 502 Bad Gateway
L’errore 502 Bad Gateway e’ un problema del mio computer?
No, l’errore 502 e’ un problema lato server, non del tuo dispositivo. Indica che il server che ospita il sito ha un problema nella comunicazione interna tra i suoi componenti. L’unica cosa che puoi fare come visitatore e’ riprovare piu’ tardi o svuotare la cache del browser.
Quanto tempo dura un errore 502?
Dipende dalla causa. Un errore 502 causato da un picco di traffico momentaneo puo’ risolversi in pochi secondi. Un crash di PHP-FPM richiede un riavvio manuale, quindi puo’ durare da pochi minuti a diverse ore se nessuno interviene. Con un sistema di monitoraggio attivo e un team tecnico preparato, la risoluzione e’ in genere molto rapida.
L’errore 502 influisce sulla SEO?
Se l’errore e’ temporaneo (pochi minuti), Google lo considera un problema transitorio e non penalizza il sito. Tuttavia, se l’errore 502 persiste per ore o giorni, Google potrebbe declassare le pagine colpite nei risultati di ricerca. Googlebot interpreta gli errori 5xx come un segnale che il server non e’ affidabile, il che puo’ influire negativamente sul posizionamento.
Posso risolvere l’errore 502 senza accesso SSH?
Le opzioni sono limitate. Se sei su un hosting condiviso, puoi contattare il supporto tecnico del tuo provider. Se usi WordPress, puoi provare ad accedere via FTP per rinominare la cartella dei plugin o il file .htaccess. Per una risoluzione completa, pero’, l’accesso SSH e il controllo del server sono quasi sempre necessari.
Perche’ l’errore 502 compare solo su alcune pagine?
Se l’errore 502 si manifesta solo su pagine specifiche, il problema e’ probabilmente legato al codice di quelle pagine: uno script PHP che consuma troppa memoria, una query al database troppo pesante, o un plugin che genera errori solo in determinati contesti. Controlla i log di errore per individuare quale script sta causando il crash.
Cloudflare mostra errore 502: e’ colpa di Cloudflare?
Non necessariamente. Quando Cloudflare mostra un errore 502, di solito significa che Cloudflare funziona correttamente ma non riesce a raggiungere il tuo server di origine. Se la pagina di errore ha il logo Cloudflare e indica “Cloudflare is working”, il problema e’ sul tuo server. Se invece Cloudflare stesso e’ in difficolta’, lo vedrai sulla loro pagina di stato.
Come posso verificare se il mio server e’ down?
Puoi usare strumenti online gratuiti come “Down for Everyone or Just Me” (isitdownrightnow.com) per verificare se il sito e’ irraggiungibile a livello globale o solo dalla tua connessione. In alternativa, prova ad accedere da una rete diversa (ad esempio dal cellulare con dati mobili) o usa un servizio VPN.
Conclusione su Errore 502 Bad Gateway
L’errore 502 Bad Gateway e’ un problema serio ma risolvibile. Nella maggior parte dei casi, la causa e’ un servizio backend (come PHP-FPM) non raggiungibile, un timeout mal configurato o risorse server insufficienti. Seguendo la guida passo-passo che abbiamo illustrato, puoi diagnosticare e risolvere il problema in modo efficiente.
La prevenzione, tuttavia, e’ la strategia migliore. Un server adeguatamente dimensionato, un monitoraggio proattivo e una configurazione ottimizzata riducono drasticamente la probabilita’ di incontrare errori 502.
Se gestisci un sito WordPress e hai bisogno di un intervento immediato per risolvere un errore 502, il servizio SoccorsoWP di G Tech Group e’ la soluzione piu’ rapida: i nostri tecnici specializzati diagnosticano e risolvono il problema in tempi brevissimi.
Per chi cerca una soluzione infrastrutturale definitiva, le nostre soluzioni VPS, i server dedicati e i Cloud VPS ad alta disponibilita’ offrono le prestazioni e l’affidabilita’ necessarie per garantire che il tuo sito sia sempre online e raggiungibile.