Come appare il messaggio
Error 522
Connection timed out
The initial connection between Cloudflare's network and the origin web server timed out.
Error 521
Web server is down
The origin web server refused the connection.Cause frequenti
- Un firewall, fail2ban o un rate limit sull'origin blocca gli indirizzi IP del CDN (molto comune con 522).
- Il web server sull'origin è fermo, è andato in crash o è in ascolto su un'altra porta (521).
- Il record DNS punta a un IP origin vecchio o sbagliato, per esempio dopo una migrazione.
- L'origin è sovraccarico e non accetta nuove connessioni in tempo.
- Il CDN si connette su una porta o un protocollo che l'origin non offre (HTTPS verso un server in ascolto solo sulla 80).
Verifica
- Il web server è attivo e in ascolto?
systemctl is-active nginx; ss -tlnp | grep -E ':(80|443)\b' - L'origin risponde direttamente? (usa l'IP reale dell'origin)
curl -sI --resolve example.com:443:203.0.113.10 https://example.com/ | head -n 5 - Le richieste dal CDN arrivano almeno all'origin?
sudo tail -n 20 /var/log/nginx/access.log - L'intervallo di indirizzi del CDN è bloccato da un ban?
sudo fail2ban-client status
Soluzione
- Avvia o ripara il web server dell'origin e verifica che sia in ascolto sulle porte usate dal CDN.
- Consenti gli intervalli IP pubblicati dal CDN nel firewall dell'origin ed escludili da fail2ban e rate limit.
- Ripristina l'IP reale del visitatore così i ban colpiscono i visitatori e non il CDN:
set_real_ip_fromper gli intervalli del CDN ereal_ip_header CF-Connecting-IP;(Cloudflare). - Correggi l'IP origin nel record DNS del CDN e allinea la modalità SSL del CDN a ciò che serve l'origin.
- Se l'origin è sovraccarico, guarda prima il carico di PHP-FPM e del database prima di dare la colpa al CDN.
Domande frequenti
Che differenza c'è tra 521 e 522?
521: l'origin ha rifiutato attivamente la connessione, quindi nessuno è in ascolto o un firewall rifiuta. 522: nessuna risposta in tempo, coerente con un firewall che scarta i pacchetti o con un server sovraccarico.
In cosa differisce da 502 e 504?
502 e 504 vengono dal tuo server o proxy che raggiunge il suo backend. 521 e 522 significano che il CDN non raggiunge nemmeno il tuo server.