Vai al contenuto principale

Guide / Risolvi: guide per gli errori che le persone incontrano davvero

Errore Cloudflare 521: web server giù - cause e soluzioni

L'errore 521 di Cloudflare significa che Cloudflare ha raggiunto l'indirizzo IP della tua origine ma il server ha rifiutato attivamente la connessione, di solito perché nulla è in ascolto sulla porta che Cloudflare ha provato, un firewall ha bloccato la richiesta, o il web server stesso è fermo. È diverso da un timeout: qualcosa all'origine ha risposto "no" immediatamente.

Cosa significa l'errore 521

Quando Cloudflare fa da proxy per una richiesta, apre una connessione TCP verso il tuo server di origine sulla porta configurata per quel record. L'errore 521 scatta quando l'origine rimanda indietro un reset TCP (RST) o un "connection refused" ICMP invece di accettare la connessione. Questo è un rifiuto definitivo, non silenzio. Confrontalo con l'errore 522, dove Cloudflare non riceve alcuna risposta entro la sua finestra di timeout, o l'errore 520, dove la connessione riesce ma la risposta HTTP che segue è rotta.

Come appare l'errore 521

I visitatori vedono la pagina propria di Cloudflare, "Error 521: web server is down", con un Ray ID. Una richiesta curl contro il dominio restituisce lo stesso stato:

curl -I https://example.com
HTTP/2 521

Poiché l'origine ha rifiutato la connessione a livello di rete, nulla raggiunge la tua applicazione, quindi i log della tua app di solito non mostreranno assolutamente nulla per le richieste fallite. Le prove si trovano più vicino alla rete: i log di avvio e accesso del tuo web server, i log di connessione del tuo firewall o security group, e i log di sistema sull'host di origine (journalctl -u nginx, systemctl status nginx, o l'equivalente per il tuo stack).

Cosa causa l'errore 521

  • Il processo del web server è fermo o è andato in crash. Nulla è in ascolto sulla porta, quindi qualunque tentativo di connessione viene rifiutato immediatamente.
  • Cloudflare è configurata per raggiungere la porta sbagliata. Se la porta di origine impostata sul record DNS o nelle impostazioni di rete di Cloudflare non corrisponde a quella su cui il tuo server è effettivamente in ascolto, ogni connessione viene rifiutata.
  • Un firewall o un security group cloud sta bloccando gli intervalli IP di Cloudflare. Se la regola mette in allowlist indirizzi IP di origine specifici e gli intervalli pubblicati da Cloudflare non ci sono, o c'erano e sono stati rimossi in seguito, le connessioni dall'edge di Cloudflare vengono scartate o rifiutate.
  • La modalità SSL/TLS è impostata su Full o Full strict ma nulla è in ascolto sulla porta 443 all'origine. Queste modalità richiedono che Cloudflare si connetta all'origine via HTTPS; se l'origine serve solo HTTP semplice, o la configurazione del certificato non è mai stata completata, il tentativo di connessione HTTPS viene rifiutato.
  • Un servizio non correlato è già associato alla porta che il web server si aspetta di usare, quindi il web server stesso non si avvia mai.

521 contro 523 contro 522

Questi tre codici sono facili da confondere perché descrivono tutti una connessione che non ha mai prodotto una risposta HTTP, ma ciascuno significa che Cloudflare è fallita in una fase diversa.

  • 521, web server is down: Cloudflare ha raggiunto l'indirizzo IP dell'origine, e qualcosa lì ha rifiutato attivamente la connessione (un reset TCP o un ICMP unreachable). Il server esiste e ha risposto, solo con un rifiuto.
  • 523, origin is unreachable: Cloudflare non è nemmeno riuscita ad arrivare fin lì. Questo indica un problema di routing, DNS, o IP, comunemente un record DNS su Cloudflare che punta ancora a un vecchio indirizzo IP dopo una migrazione del server, o una rotta di rete privata (come un Cloudflare Tunnel) che è giù.
  • 522, connection timed out: Cloudflare ha tentato l'handshake TCP ma non ha ricevuto risposta in tempo, né un'accettazione né un rifiuto. Vedi la guida separata sull'errore Cloudflare 522 per quel caso.

Come capire di chi è la colpa

Un 521 è un forte segnale che il problema si trovi sul lato origine dell'edge di Cloudflare, dato che il rifiuto è arrivato dal tuo stesso server o dalla rete direttamente davanti a esso. La domanda che conta operativamente è se sta colpendo l'intero sito o un sottoinsieme di traffico, e il modo più veloce per verificarlo è eseguire un controllo HTTP da più postazioni contemporaneamente. Il controllo HTTP di HostTracker interroga il dominio da punti di controllo in più paesi e riporta ogni risultato separatamente, così puoi vedere subito se ogni postazione riceve lo stesso 521 o solo alcune, il che indicherebbe una regola firewall parziale o un load balancer con un backend malfunzionante piuttosto che l'intero server giù.

Come correggere l'errore 521

Se sei un visitatore

  1. Ricarica dopo una breve attesa. Se chi gestisce il sito sta riavviando il server, la correzione potrebbe già essere in corso.
  2. Controlla la pagina di stato del sito, se ne esiste una, o i suoi social media per un avviso di interruzione noto.
  3. Non c'è nulla da cambiare dal tuo lato. Il rifiuto avviene sul server stesso del sito, non nel tuo browser, DNS, o ISP.

Se gestisci il sito

  1. Conferma che il processo del web server sia effettivamente in esecuzione: systemctl status nginx (o il tuo equivalente), e controlla i suoi log per un crash o un riavvio fallito.
  2. Conferma che la porta che Cloudflare è configurata a usare corrisponda a quella su cui il tuo server è in ascolto. Controlla la porta di origine sotto il record DNS o le impostazioni di rete nella dashboard di Cloudflare rispetto alle porte in ascolto effettive del tuo server (ss -tlnp su Linux).
  3. Controlla che il tuo firewall o security group cloud permetta traffico in ingresso dagli intervalli IP pubblicati di Cloudflare su quella porta. Cloudflare pubblica i suoi intervalli IPv4 e IPv6 attuali su cloudflare.com/ips; una regola costruita da una vecchia copia di quella lista inizierà a rifiutare i nuovi intervalli man mano che vengono aggiunti.
  4. Se la tua modalità di crittografia SSL/TLS è Full o Full strict, conferma che qualcosa sia effettivamente in ascolto sulla porta 443 all'origine con un certificato che Cloudflare possa convalidare. Passare temporaneamente a Flexible è un utile passo diagnostico per confermare che questa sia la causa, non una correzione permanente, dato che Flexible lascia la connessione tra Cloudflare e la tua origine non cifrata.
  5. Bypassa Cloudflare per testare l'origine direttamente e vedere il rifiuto grezzo senza il livello edge in mezzo:
    curl -v -H "Host: example.com" https://ORIGIN_IP:PORT/
    Un "Connection refused" qui conferma che il problema è il listener o il firewall dell'origine, non Cloudflare.
  6. Controlla che nient'altro sull'host abbia occupato la porta che il tuo web server si aspetta, il che impedirebbe al web server di associarsi ad essa all'avvio.

Come prevenirlo

Una regola firewall che mette in allowlist solo gli intervalli di Cloudflare è un modo comune per far riapparire il 521 mesi dopo, dato che Cloudflare aggiunge e ritira intervalli IP nel tempo e una regola copiata una volta finirà per diventare obsoleta. Un controllo HTTP eseguito fuori dalla tua rete cattura l'interruzione risultante nello stesso modo in cui la sperimenterebbe un visitatore, invece di affidarsi a qualcuno che nota che il sito è irraggiungibile e lo segnala.

Errori correlati

Domande frequenti

L'errore 521 è lo stesso che avere il server fisicamente spento?

Non necessariamente. Significa che qualcosa ha rifiutato la connessione TCP, il che può essere il processo del web server fermato mentre la macchina stessa resta accesa, un firewall che rifiuta la richiesta, o un mismatch della modalità TLS, oltre al server effettivamente giù.

Qual è il modo più veloce per confermare che la causa sia un firewall?

Interroga l'origine direttamente con il suo indirizzo IP e l'header Host del dominio, bypassando Cloudflare. Se anche questo viene rifiutato, il blocco è probabilmente nel firewall o security group dell'origine stessa piuttosto che qualcosa di specifico agli intervalli IP di Cloudflare.

Perché il 521 inizierebbe a verificarsi senza alcun cambiamento al mio server?

Cloudflare aggiorna periodicamente i suoi intervalli IP pubblicati. Una regola firewall costruita da una vecchia copia di quella lista smette di corrispondere agli intervalli aggiunti di recente, quindi le richieste da quegli intervalli vengono rifiutate anche se nulla sul tuo server è cambiato.

Passare la modalità SSL/TLS a Flexible risolve il 521 in modo permanente?

Può mascherare un mismatch di Full o Full-strict dato che Flexible non richiede HTTPS all'origine, ma significa anche che la connessione tra Cloudflare e il tuo server non è cifrata. Trattalo come un passo diagnostico, poi correggi il listener TLS dell'origine e torna indietro.

In cosa il 521 è diverso dal 523?

521 significa che Cloudflare ha raggiunto l'origine ed è stata rifiutata. 523 significa che Cloudflare non è riuscita a raggiungerla affatto, il che indica DNS, routing, o un tunnel rotto piuttosto che qualcosa fatto dal server di origine stesso.

Controlla ora

Esegui il controllo gratuito sul tuo sito, senza bisogno di un account.

HTTP check

Monitora in modo permanente

Ricevi un avviso appena qualcosa si rompe: HostTracker controlla da oltre 300 località e ti avvisa via e-mail, SMS, Slack, Telegram e altro.

Funzionalità di HostTracker

Altro in questa sezione: Risolvi: guide per gli errori che le persone incontrano davvero