Erreur Cloudflare 521 : Web Server Is Down
Cloudflare ne peut pas établir de connexion TCP avec votre serveur d'origine.
L'erreur Cloudflare 521 "Web Server Is Down" indique que Cloudflare a tenté d'établir une connexion TCP avec votre serveur d'origine mais la connexion a été activement refusée. Contrairement à d'autres erreurs Cloudflare, le 521 signifie que votre serveur web est soit arrêté, soit inaccessible depuis les datacenters Cloudflare.
Cette erreur est l'une des plus fréquentes rencontrées par les sites utilisant Cloudflare comme CDN ou proxy inverse. Elle se distingue du 522 (timeout) car ici la connexion est refusée immédiatement plutôt que d'expirer. Comprendre cette différence est crucial pour un diagnostic efficace.
Dans ce guide complet, nous allons explorer les causes principales de l'erreur 521, les méthodes de diagnostic avancées, et les solutions éprouvées pour rétablir rapidement votre service. Un monitoring proactif de votre infrastructure permet de détecter ces problèmes avant que vos utilisateurs ne soient impactés.
Causes principales de l'erreur 521
L'erreur 521 survient lorsque Cloudflare ne peut pas établir une connexion TCP avec votre serveur. Voici les causes les plus fréquentes :
- Serveur web arrêté : Apache, Nginx ou votre serveur web n'est plus en cours d'exécution. Un crash, un redémarrage manuel ou une mise à jour peut avoir stoppé le service sans que vous le remarquiez.
- Pare-feu bloquant Cloudflare : Votre pare-feu (iptables, UFW, CSF, ou cloud firewall) bloque les plages IP de Cloudflare. Ces IP doivent être explicitement autorisées car tout le trafic transite par elles.
- Ports fermés ou mal configurés : Les ports 80 (HTTP) et 443 (HTTPS) ne sont pas ouverts ou ne sont pas en écoute. Une mauvaise configuration du virtual host ou du server block peut causer ce problème.
- Surcharge serveur : Lorsque le serveur atteint ses limites de connexions simultanées, il refuse les nouvelles connexions. Cela peut sembler être un 521 intermittent.
Comment diagnostiquer l'erreur 521
Un diagnostic méthodique permet d'identifier rapidement l'origine du problème :
- Vérifier l'état du serveur web : Connectez-vous en SSH et exécutez "systemctl status nginx" (ou apache2). Vérifiez si le service est actif et n'affiche pas d'erreurs dans le statut.
- Tester la connectivité locale : Depuis le serveur lui-même, testez avec "curl -I http://localhost" pour vérifier que le serveur répond localement.
- Vérifier les ports en écoute : Utilisez "netstat -tlpn | grep -E '80|443'" ou "ss -tlpn" pour confirmer que votre serveur écoute bien sur les ports requis.
- Analyser les logs : Examinez /var/log/nginx/error.log ou /var/log/apache2/error.log pour identifier des erreurs de configuration ou des problèmes de ressources.
Solutions pour corriger l'erreur 521
Une fois la cause identifiée, appliquez la solution appropriée :
- Redémarrer le serveur web : Exécutez "systemctl restart nginx" ou "systemctl restart apache2". Vérifiez ensuite le statut pour confirmer que le service démarre sans erreur.
- Autoriser les IP Cloudflare : Consultez cloudflare.com/ips et ajoutez toutes les plages IP Ă votre firewall. Pour UFW : "ufw allow from 173.245.48.0/20 to any port 443".
- Vérifier la configuration des ports : Assurez-vous que vos virtual hosts écoutent sur les bons ports. Dans Nginx, vérifiez les directives "listen 80" et "listen 443 ssl" dans vos server blocks.
- Augmenter les limites de connexions : Si le problème est la surcharge, augmentez worker_connections dans Nginx ou MaxRequestWorkers dans Apache, et vérifiez les limites système (ulimit).
Script de vérification automatique
Ce script bash vérifie les points critiques pour un diagnostic rapide de l'erreur 521 :
#!/bin/bash
# Diagnostic Cloudflare 521
echo "=== Verification serveur web ==="
systemctl is-active --quiet nginx && echo "Nginx: OK" || echo "Nginx: STOPPED"
systemctl is-active --quiet apache2 && echo "Apache: OK" || echo "Apache: STOPPED"
echo -e "\n=== Ports en ecoute ==="
ss -tlpn | grep -E ':80|:443'
echo -e "\n=== Test connectivite locale ==="
curl -sI http://localhost | head -1
echo -e "\n=== IP Cloudflare dans iptables ==="
iptables -L -n | grep -c "173.245.48" && echo "Cloudflare IPs: Found" || echo "Cloudflare IPs: NOT FOUND"
echo -e "\n=== Dernières erreurs web ==="
tail -5 /var/log/nginx/error.log 2>/dev/null || tail -5 /var/log/apache2/error.log
Ce script vérifie l'état des services, les ports en écoute, la connectivité locale et la présence des règles firewall pour Cloudflare. Exécutez-le avec "sudo bash diagnostic.sh" pour un aperçu rapide de la situation.
Prévenir les erreurs 521
Mettez en place ces bonnes pratiques pour éviter les erreurs 521 :
- Monitoring proactif : Utilisez MoniTao pour surveiller votre site à travers Cloudflare. Vous serez alerté dès qu'une erreur 521 apparaît, avant que vos utilisateurs ne le remarquent.
- Automatiser les mises à jour firewall : Créez un cron job qui met à jour automatiquement les IP Cloudflare dans votre firewall. Cloudflare publie ces plages qui peuvent changer occasionnellement.
- Configurer les redémarrages automatiques : Utilisez systemd pour configurer le redémarrage automatique de votre serveur web en cas de crash : "Restart=always" dans le fichier service.
- Surveiller les ressources serveur : Monitorez CPU, RAM et nombre de connexions. Une alerte précoce sur la surcharge permet d'intervenir avant que le serveur ne refuse les connexions.
Checklist de vérification 521
- Serveur web démarré et fonctionnel (systemctl status)
- Toutes les plages IP Cloudflare autorisées dans le firewall
- Ports 80 et 443 en écoute et accessibles
- Configuration SSL valide pour le port 443
- Limites de connexions suffisantes
- Monitoring en place pour détection précoce
Questions fréquentes sur l'erreur 521
Quelle est la différence entre l'erreur 521 et 522 Cloudflare ?
L'erreur 521 signifie que la connexion est immédiatement refusée (serveur down ou bloqué), tandis que le 522 indique que la connexion a été établie mais a expiré (timeout). Le 521 est généralement plus simple à diagnostiquer car il pointe vers un problème de disponibilité du service.
Comment autoriser les IP Cloudflare dans UFW ?
Téléchargez la liste des IP depuis cloudflare.com/ips et créez des règles pour chaque plage. Exemple : "ufw allow from 173.245.48.0/20 to any port 80,443 proto tcp". Automatisez cette mise à jour avec un script cron.
Pourquoi le 521 apparaît-il par intermittence ?
Un 521 intermittent est souvent causé par une surcharge serveur qui refuse temporairement les connexions, ou par un processus de redémarrage automatique du serveur web. Vérifiez les logs et la charge serveur au moment des erreurs.
Mon serveur fonctionne mais j'ai toujours l'erreur 521. Que faire ?
Vérifiez votre firewall en priorité. Même si le serveur répond localement, si les IP Cloudflare sont bloquées, vous aurez un 521. Testez aussi avec "curl --resolve" depuis une IP externe non-Cloudflare.
Le mode Development de Cloudflare peut-il causer des 521 ?
Non, le mode Development n'impacte pas la connectivité. Il désactive simplement le cache. Si vous avez des 521, le problème est au niveau du serveur d'origine, pas de Cloudflare.
Comment monitorer efficacement derrière Cloudflare ?
Utilisez un service de monitoring externe comme MoniTao qui teste votre site comme un visiteur normal, à travers Cloudflare. Cela détecte les erreurs 521, 522, 523, 524 et tous les problèmes de disponibilité visibles par vos utilisateurs.
Conclusion
L'erreur Cloudflare 521 est généralement simple à résoudre une fois la cause identifiée. Dans la majorité des cas, il s'agit d'un serveur web arrêté ou d'un firewall mal configuré. Un diagnostic méthodique en vérifiant l'état du service, les ports et les règles firewall permet de rétablir le service rapidement.
La prévention reste la meilleure stratégie : un monitoring proactif avec MoniTao vous alerte immédiatement en cas d'erreur 521, vous permettant d'intervenir avant que l'impact sur vos utilisateurs ne devienne significatif. Combiné avec des scripts d'automatisation pour les mises à jour firewall et les redémarrages de service, vous pouvez maintenir une haute disponibilité de votre infrastructure derrière Cloudflare.
Liens utiles
PrĂŞt Ă dormir sur vos deux oreilles ?
Commencez gratuitement, sans carte bancaire.