Errore 521 e 522 di Cloudflare: il server di origine non risponde
· 5 min di lettura
Cosa significano questi errori
Quando un sito passa da Cloudflare, i visitatori parlano con Cloudflare e Cloudflare parla con il tuo server, il cosiddetto “server di origine”. I codici 521 e 522 sono propri di Cloudflare e dicono la stessa cosa: Cloudflare funziona, il tuo server non risponde.
- 521 Web server is down: Cloudflare ha raggiunto il tuo server, ma questo ha rifiutato la connessione sulla porta 443 o 80. Nessuno è in ascolto lì, oppure un firewall la rifiuta.
- 522 Connection timed out: Cloudflare non ha ottenuto risposta al tentativo di connessione: server spento o saturo, oppure un firewall che scarta i pacchetti senza avvisare.
Un 521 è quindi un ERR_CONNECTION_REFUSED visto da Cloudflare e non dal browser; un 522, un timeout di connessione. Nessuno dei due è un guasto di Cloudflare, e disattivare il proxy non sistema nulla: senza Cloudflare, i visitatori vedrebbero la connessione rifiutata direttamente. Non confonderlo con un 502 Bad Gateway, dove il server web risponde ma l’applicazione dietro è ferma, né con ERR_TOO_MANY_REDIRECTS, il ciclo di reindirizzamenti che nasce spesso dalla modalità SSL “Flexible”. Non sai ancora cosa non va? Parti dalla guida sito non raggiungibile.
Cause frequenti
- Il server web è fermo. nginx o Apache è andato in errore o non è ripartito dopo una modifica. Risultato: 521.
- Il firewall blocca gli indirizzi di Cloudflare. Cloudflare si collega dai propri intervalli di IP. Un firewall restrittivo, o uno strumento contro gli attacchi che ha bandito Cloudflare dopo una raffica di richieste, dà 521 (reject) o 522 (drop).
- Il server è spento o irraggiungibile. Guasto, riavvio, lavori programmati del provider di hosting, interfaccia di rete giù: 522.
- Sovraccarico. Il server accetta le connessioni troppo lentamente: 522 a intermittenza, soprattutto con molto traffico.
- Porta o modalità SSL sbagliata. In modalità “Full” o “Full (strict)”, Cloudflare si collega alla 443; se il server ascolta solo sulla 80, dà 521. In “Flexible”, Cloudflare si collega alla 80.
- Il record DNS su Cloudflare punta a un IP vecchio. Dopo un trasloco di server, la vecchia macchina è spenta: 522.
Se sei un visitatore
Non puoi fare nulla: Cloudflare serve la pagina di errore per un sito il cui server non risponde. Riprova più tardi.
Se il sito è tuo: verifica prima
Apri il Website down checker: mostra il codice 521 o 522 dall’esterno. Poi scavalca Cloudflare e parla con il server tramite il suo IP con l’header Host:
# il server di origine risponde direttamente?
curl -sI https://203.0.113.10/ -H 'Host: example.com' -k --max-time 10
curl -sI http://203.0.113.10/ -H 'Host: example.com' --max-time 10
# sul server: l’IP reale, da confrontare con il DNS
hostname -I
Se curl risponde, il server sta bene e il blocco è sul percorso Cloudflare → server (firewall, IP, porta). Se fallisce anche lui, entra via SSH:
systemctl status nginx
systemctl status apache2
sudo ss -tlnp | grep -E ':80 |:443 '
sudo ufw status verbose
sudo fail2ban-client status
uptime
Soluzioni sul tuo server
1. Riavviare il server web
sudo nginx -t && sudo systemctl restart nginx
sudo apachectl configtest && sudo systemctl restart apache2
sudo journalctl -u nginx -n 50
Se non parte, il log dice perché: errore di sintassi, certificato inesistente, porta occupata, disco pieno (df -h).
2. Consentire gli intervalli IP di Cloudflare
Cloudflare pubblica i propri intervalli di indirizzi. Il tuo firewall deve accettarli sulla 80 e sulla 443:
# ufw: una regola per intervallo
for ip in $(curl -s https://www.cloudflare.com/ips-v4) $(curl -s https://www.cloudflare.com/ips-v6); do
sudo ufw allow from "$ip" to any port 80,443 proto tcp
done
Se fail2ban ha bandito un indirizzo di Cloudflare, togli il bando e fagli leggere l’IP reale del visitatore (header CF-Connecting-IP). Controlla anche il gruppo di sicurezza del provider cloud.
3. Far coincidere porta e modalità SSL
Su Cloudflare, sezione SSL/TLS: con “Full (strict)”, il tuo server deve presentare sulla 443 un certificato valido per il dominio (Let’s Encrypt con certbot, oppure un certificato di origine di Cloudflare). Con “Full” ne basta uno autofirmato. Con “Flexible”, il server deve rispondere in HTTP sulla 80 senza reindirizzare. La scelta più sicura: 80 e 443 con certificato valido e “Full (strict)”.
sudo ss -tlnp | grep ':443 '
echo | openssl s_client -connect 203.0.113.10:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -subject
4. Sovraccarico
Se uptime mostra un carico alto e i 522 vanno e vengono, cerca cosa occupa il server: top, worker di PHP-FPM saturi (server reached pm.max_children nel log), una query lenta, bot. Alza i worker se la memoria lo permette e lascia che Cloudflare serva le risorse statiche.
5. Correggere il record DNS su Cloudflare
Nel pannello di Cloudflare, scheda DNS: il record A (e AAAA) di example.com e di www deve puntare all’IP attuale del server. Elimina un AAAA con un indirizzo IPv6 che il server non ha più.
Se il problema è presso il tuo provider di hosting
Su un hosting condiviso non puoi riavviare il server web né aprire il firewall. Invia questo:
Buongiorno, il mio sito example.com passa da Cloudflare e restituisce “Error 522” (timeout di connessione verso il server di origine) da circa le 15:00 (UTC). Il record DNS punta a 203.0.113.10, l’IP del mio hosting. Non ho cambiato nulla da parte mia. Il server web di quella macchina è fermo, oppure il firewall blocca gli intervalli di Cloudflare?
Perché non succeda di nuovo
Dietro Cloudflare, un server fermo passa inosservato fino alla pagina di errore. Una verifica dall’esterno vede il 521 o il 522 appena compare; sul tuo server, l’agente server ti avvisa quando nginx si ferma, il carico sale o il disco si riempie.
Down? Interveniamo. Sul tuo server o su un hosting condiviso con accesso SSH, il Quick Fix, l’intervento automatico a prezzo fisso, riavvia il servizio fermo se il suo test di configurazione riesce, 24 ore su 24, anche nel fine settimana; il Deep Fix si occupa del firewall, della modalità SSL o del sovraccarico, a blocchi di 15 minuti; la stima è il prezzo massimo.
E adesso
Verifica dall’esterno
Il sito è down per tutti o solo per te, e cosa risponde il server? Gratis, senza registrazione.
Website down checkerDown? Interveniamo.
Sul tuo server o su un hosting condiviso con accesso SSH: Quick Fix a prezzo fisso per le cause più comuni, Deep Fix fatturato a blocchi di 15 minuti per tutto il resto, 24/7. Prezzo visibile prima dell’ordine.
Ordina un interventoAltre guide
- Sito non raggiungibile: cosa fare nei primi 15 minuti
- Server down o non raggiungibile: cosa controllare e in che ordine
- Errore 500 Internal Server Error: trovare la causa nei log e rimettere online il sito
- Errore 502 Bad Gateway: trovare la causa e risolverlo
- Errore 503: sovraccarico, manutenzione o limite dell’hosting?
- Errore 504 Gateway Timeout: trovare cosa rallenta
- DNS_PROBE_FINISHED_NXDOMAIN: il dominio non risponde più
- ERR_CONNECTION_REFUSED: il server rifiuta la connessione
- ERR_CONNECTION_TIMED_OUT: il server non risponde in tempo
- Cosa significa “La connessione non è privata” e come risolverlo
- ERR_SSL_PROTOCOL_ERROR: la connessione sicura fallisce prima del certificato
- ERR_TOO_MANY_REDIRECTS: trovare il ciclo di reindirizzamenti e chiuderlo
- Errore 403 Forbidden: cosa blocca l’accesso al tuo sito