Erreur 520 : le serveur Web renvoie une erreur inconnue

error520.png

Vue d'ensemble

L'erreur 520 est essentiellement une réponse « fourre-tout » lorsque le serveur d'origine renvoie quelque chose d'inattendu ou quelque chose qui n'est pas toléré / interprété (violation du protocole ou réponse vide).

Alors que l'erreur 520 peut être déclenchée par des scénarios marginaux très rares et étranges, ils sont généralement causés par :

  • Des réinitialisations de la connexion (suite à une négociation TCP réussie)
  • Des en-têtes qui dépassent la limite de taille d'en-tête de Cloudflare (plus de 8 Ko)
  • Une réponse vide depuis le point d'origine
  • Une réponse HTTP non valide
  • Des en-têtes de réponse manquants pour une réponse HTTP

 Si l'une de ces conditions ci-dessus peut être confirmée à partir du serveur Web qui héberge le site, il est recommandé de consulter le fournisseur d'hébergement pour l'assistance à la configuration du serveur Web afin d'éviter d'autres interruptions et erreurs.  

Causes communes

Les erreurs 520 sont généralement causées à la couche 7, qui est la couche application. Cela signifie qu'une erreur 520 est le résultat d'une mauvaise réponse qui revient de l'application. Le Rate limiting ou les requêtes de filtrage (par exemple en connectant l'adresse IP ou le volume / la fréquence) peut parfois causer des problèmes avec votre application.  

Dépannage

En raison de la nature de la réponse 520, il est préférable de la comparer à la réponse du serveur d'origine en utilisant une commande cURL pour confirmer si des conditions ont été remplies pour déclencher l'erreur. Cela se confirme au moment de déterminer si le serveur d'origine renvoie une réponse vide, une réponse HTTP non valide ou des en-têtes de réponse extrêmement grands.

Voici un exemple de commande utilisée pour forcer l'en-tête HTTP  Hôte  lors de l'envoi de la demande à l'adresse IP source où le domaine est hébergé (dans cet exemple, nous envoyons une requête pour une page de connexion) :

curl -vso /dev/null --user-agent "Mozilla 5.0" -H "Host: example.com" http://123.123.123.321/login

Voici un exemple de sortie où la réponse d'origine est une réponse vide, ce qui devrait normalement entraîner une erreur 520 si la requête a été traitée par proxy par Cloudflare :

* Le nom d'hôte n'a PAS été trouvé dans le cache DNS
*    Trying 123.123.123.321 ...
* Connecté au port 80 (# 0) 123.123.123.321 (123.123.123.321)
OBTENIR /login HTTP/1.1
> Agent utilisateur : Mozilla 5.0
> Accepter: * / *
> Hôte : example.com
>
* Réponse vide du serveur
* Connexion # 0 à l'hôte 123.123.123.321 conservée

Un en-tête correct pourrait ressembler à ceci :

* Le nom d'hôte n'a PAS été trouvé dans le cache DNS
*    Trying 123.123.123.321 ...
* Connecté au port 80 (# 0) 123.123.123.321 (123.123.123.321)
OBTENIR /login HTTP/1.1
> Agent utilisateur : Mozilla 5.0
> Accepter: * / *
> Hôte : example.com
>
< HTTP / 1.1 200 OK
< Content-Type : text / html
< Date: Jour, JJ, Mois Année Heure : Minute : Deuxième fuseau horaire
{[14 240 octets de données]
* Connexion # 0 à l'hôte 123.123.123.321 conservée

Puisque la limitation du débit peut également provoquer ce problème, vous voudrez mettre nos adresses IP en liste verte. Vous pouvez trouver une liste des plages d'adresses IP CloudFlare  ce guide.

Une autre étape de dépannage efficace serait d'obtenir un  HAR  (HTTP Archive File) pour une requête directement à l'origine et par Cloudflare à partir d'un utilisateur affecté. Les fichiers HAR fournissent une source d'information utile pour comparer les en-têtes de réponse d'origine pendant que la CF traite par proxy la requête (utile pour confirmer si les réponses d'en-têtes sont trop volumineuses).  

Lorsque vous soumettez un ticket de support, fournissez :

  • les étapes pour reproduire l'erreur
  • les fichiers HAR
  • les ID de ray des erreurs affichées
Vous n'avez toujours pas trouvé ce que vous cherchez ?

95% des questions peuvent être répondues en utilisant l'outil de recherche. C'est le moyen le plus rapide d'obtenir une réponse.

Réalisé par Zendesk