Erreur Cloudflare 521 : le serveur web est en panne - causes et corrections
L'erreur Cloudflare 521 signifie que Cloudflare a atteint l'adresse IP de votre origine mais que le serveur a activement refusé la connexion, généralement parce que rien n'écoute sur le port que Cloudflare a tenté, qu'un pare-feu a bloqué la requête, ou que le serveur web lui-même est arrêté. C'est différent d'un timeout : quelque chose à l'origine a répondu « non » immédiatement.
Ce que signifie l'erreur 521
Quand Cloudflare fait office de proxy pour une requête, il ouvre une connexion TCP vers votre serveur d'origine sur le port configuré pour cet enregistrement. L'erreur 521 se déclenche quand l'origine renvoie une réinitialisation TCP (RST) ou un « connection refused » ICMP au lieu d'accepter la connexion. C'est un refus net, pas un silence. Comparez cela avec l'erreur 522, où Cloudflare n'obtient aucune réponse du tout dans sa fenêtre de délai, ou l'erreur 520, où la connexion réussit mais la réponse HTTP qui suit est cassée.
Comment l'erreur 521 apparaît
Les visiteurs voient la propre page de Cloudflare, « Error 521: web server is down », avec un Ray ID. Une requête curl contre le domaine renvoie le même statut :
curl -I https://example.com
HTTP/2 521
Puisque l'origine a refusé la connexion au niveau de la couche réseau, rien n'atteint votre application, donc vos journaux applicatifs ne montreront généralement rien du tout pour les requêtes échouées. La preuve se trouve plus près du réseau : les propres journaux de démarrage et d'accès de votre serveur web, les journaux de connexion de votre pare-feu ou de votre groupe de sécurité cloud, et les journaux système sur l'hôte d'origine (journalctl -u nginx, systemctl status nginx, ou l'équivalent pour votre pile technique).
Ce qui provoque l'erreur 521
- Le processus du serveur web est arrêté ou a planté. Rien n'écoute sur le port du tout, donc toute tentative de connexion est refusée immédiatement.
- Cloudflare est configuré pour atteindre le mauvais port. Si le port d'origine défini sur l'enregistrement DNS ou dans les réglages réseau de Cloudflare ne correspond pas à ce que votre serveur écoute réellement, chaque connexion est refusée.
- Un pare-feu ou un groupe de sécurité cloud bloque les plages IP publiées de Cloudflare. Si la règle n'autorise que des adresses IP source spécifiques et que les plages publiées de Cloudflare n'y figurent pas, ou y figuraient et ont été retirées plus tard, les connexions venant de la bordure de Cloudflare sont abandonnées ou rejetées.
- Le mode de chiffrement SSL/TLS est réglé sur Full ou Full strict mais rien n'écoute sur le port 443 à l'origine. Ces modes exigent que Cloudflare se connecte à l'origine en HTTPS ; si l'origine ne sert que du HTTP simple, ou si la configuration du certificat n'a jamais abouti, la tentative de connexion HTTPS est refusée.
- Un service sans rapport occupe déjà le port que le serveur web s'attend à utiliser, donc le serveur web lui-même ne démarre jamais.
521 face à 523 face à 522
Ces trois codes sont faciles à confondre car ils décrivent tous une connexion qui n'a jamais produit de réponse HTTP, mais chacun signifie que Cloudflare a échoué à une étape différente.
- 521, web server is down : Cloudflare a atteint l'adresse IP de l'origine, et quelque chose là-bas a activement refusé la connexion (une réinitialisation TCP ou un ICMP unreachable). Le serveur existe et a répondu, simplement par un refus.
- 523, origin is unreachable : Cloudflare n'a même pas pu aller aussi loin. Cela pointe vers un problème de routage, de DNS, ou d'IP, fréquemment un enregistrement DNS chez Cloudflare qui pointe encore vers une ancienne adresse IP après une migration de serveur, ou une route réseau privée (comme un Cloudflare Tunnel) qui est en panne.
- 522, connection timed out : Cloudflare a tenté le handshake TCP mais n'a obtenu aucune réponse à temps, ni acceptation ni refus. Voir le guide séparé sur l'erreur Cloudflare 522 pour ce cas.
Comment savoir de qui vient la faute
Un 521 est un signal fort que le problème se situe du côté de l'origine par rapport à la bordure de Cloudflare, puisque le refus est venu de votre propre serveur ou du réseau directement en amont. La question qui compte opérationnellement est de savoir si cela affecte tout le site ou un sous-ensemble de trafic, et le moyen le plus rapide de vérifier est de lancer une vérification HTTP depuis plusieurs emplacements à la fois. La vérification HTTP de HostTracker interroge le domaine depuis des points de contrôle dans plusieurs pays et rapporte chaque résultat séparément, vous pouvez donc voir immédiatement si chaque emplacement obtient le même 521 ou si seuls certains l'obtiennent, ce qui pointerait vers une règle de pare-feu partielle ou un équilibreur de charge avec un backend défaillant plutôt que le serveur entier qui serait en panne.
Comment corriger l'erreur 521
Si vous êtes visiteur
- Rechargez après une courte attente. Si l'opérateur du site redémarre le serveur, la correction est peut-être déjà en cours.
- Vérifiez la page de statut du site, si elle existe, ou ses réseaux sociaux pour un avis de panne connue.
- Il n'y a rien à changer de votre côté. Le refus se produit sur le propre serveur du site, pas dans votre navigateur, votre DNS, ou votre FAI.
Si vous gérez le site
- Confirmez que le processus du serveur web est réellement en cours d'exécution :
systemctl status nginx(ou l'équivalent), et vérifiez ses journaux pour un plantage ou un redémarrage échoué. - Confirmez que le port que Cloudflare est configuré pour utiliser correspond à ce que votre serveur écoute. Vérifiez le port d'origine sous l'enregistrement DNS ou les réglages Network dans le tableau de bord Cloudflare par rapport aux ports d'écoute réels de votre serveur (
ss -tlnpsous Linux). - Vérifiez que votre pare-feu ou votre groupe de sécurité cloud autorise le trafic entrant depuis les plages IP publiées de Cloudflare sur ce port. Cloudflare publie ses plages IPv4 et IPv6 actuelles sur cloudflare.com/ips ; une règle construite à partir d'une copie ancienne de cette liste commencera à rejeter les nouvelles plages au fur et à mesure qu'elles sont ajoutées.
- Si votre mode de chiffrement SSL/TLS est Full ou Full strict, confirmez que quelque chose écoute réellement sur le port 443 à l'origine avec un certificat que Cloudflare peut valider. Basculer temporairement sur Flexible est un diagnostic utile pour confirmer que c'est bien la cause, pas une correction permanente, puisque Flexible laisse la connexion entre Cloudflare et votre origine non chiffrée.
- Contournez Cloudflare pour tester l'origine directement et voir le refus brut sans la couche de bordure entre les deux :
Un « Connection refused » ici confirme que le problème vient de l'écouteur ou du pare-feu de l'origine, pas de Cloudflare.curl -v -H "Host: example.com" https://ORIGIN_IP:PORT/ - Vérifiez que rien d'autre sur l'hôte n'a pris le port que votre serveur web attend, ce qui empêcherait le serveur web de s'y lier au démarrage.
Comment le prévenir
Une règle de pare-feu qui n'autorise que les plages de Cloudflare est une façon courante pour un 521 de réapparaître des mois plus tard, puisque Cloudflare ajoute et retire des plages IP au fil du temps et qu'une règle copiée une fois se périmera. Une vérification HTTP s'exécutant depuis l'extérieur de votre réseau détecte la panne résultante de la même façon qu'un visiteur la vivrait, plutôt que de dépendre de quelqu'un qui remarque que le site est injoignable et le signale.
Erreurs associées
- Erreur Cloudflare 520 : erreur inconnue - l'origine a répondu, mais la réponse n'a pas pu être relayée.
- Erreur Cloudflare 522 : délai de connexion dépassé - le handshake n'a obtenu aucune réponse du tout.
- Erreurs serveur 5xx - la famille générale de codes de statut.
- 502 Bad Gateway - la version non spécifique à Cloudflare d'un échec upstream.
Questions fréquentes
L'erreur 521 signifie-t-elle que le serveur est physiquement éteint ?
Pas nécessairement. Elle signifie que quelque chose a refusé la connexion TCP, ce qui peut être le processus du serveur web arrêté pendant que la machine elle-même reste allumée, un pare-feu rejetant la requête, ou une incompatibilité de mode TLS, aussi bien que le serveur réellement en panne.
Quel est le moyen le plus rapide de confirmer qu'un pare-feu en est la cause ?
Interrogez l'origine directement avec son adresse IP et l'en-tête Host du domaine, en contournant Cloudflare. Si cela est aussi refusé, le blocage est probablement dû au propre pare-feu ou groupe de sécurité de l'origine plutôt qu'à quelque chose de spécifique aux plages IP de Cloudflare.
Pourquoi un 521 commencerait-il à se produire sans aucun changement sur mon serveur ?
Cloudflare met périodiquement à jour ses plages IP publiées. Une règle de pare-feu construite à partir d'une copie ancienne de cette liste cesse de correspondre aux plages nouvellement ajoutées, donc les requêtes venant de ces plages sont refusées même si rien n'a changé sur votre propre serveur.
Basculer le mode SSL/TLS sur Flexible corrige-t-il le 521 de façon permanente ?
Cela peut masquer une incompatibilité Full ou Full strict puisque Flexible n'exige pas de HTTPS à l'origine, mais cela signifie aussi que la connexion entre Cloudflare et votre serveur n'est pas chiffrée. Traitez-le comme une étape de diagnostic, puis corrigez l'écouteur TLS de l'origine et revenez en arrière.
Quelle est la différence entre 521 et 523 ?
521 signifie que Cloudflare a atteint l'origine et a été refusé. 523 signifie que Cloudflare n'a même pas pu l'atteindre du tout, ce qui pointe vers le DNS, le routage, ou un tunnel cassé plutôt que quelque chose que le serveur d'origine lui-même a fait.