Zum Hauptinhalt springen

Anleitungen / Beheben: Anleitungen zu den Fehlern, die wirklich vorkommen

Cloudflare-Fehler 520: Bedeutung und Lösung

Cloudflare-Fehler 520 bedeutet, Cloudflare hat sich mit Ihrem Ursprungsserver verbunden, aber eine Antwort zurückbekommen, die leer, nicht erkennbar oder anderweitig zu kaputt war, um sie an den Besucher weiterzugeben. Cloudflare verwendet den Fehlercode 520 als Auffangbecken: Vom Ursprung kam etwas zurück, aber nichts, das den Regeln einer normalen HTTP-Antwort entspricht.

Was Fehler 520 bedeutet

Cloudflare sitzt als Reverse-Proxy zwischen dem Besucher und Ihrem Webserver. Bei einer normalen Anfrage öffnet es eine TCP-Verbindung zu Ihrem Ursprung, sendet die Anfrage und leitet weiter, was auch immer als HTTP-Antwort zurückkommt. Fehler 520 tritt auf, wenn dieser letzte Schritt scheitert: Die TCP-Verbindung gelingt, aber die folgenden Bytes lassen sich nicht als gültige HTTP-Antwort parsen, oder es kommen überhaupt keine Bytes an, bevor die Verbindung schließt.

Das setzt 520 in eine andere Kategorie als Cloudflares übrige 5xx-Codes. Fehler 521 bedeutet, der Ursprung hat die Verbindung rundweg abgelehnt. Fehler 522 bedeutet, der Verbindungsversuch lief in eine Zeitüberschreitung. Fehler 520 bedeutet, der Ursprung hat etwas gesagt, und Cloudflare konnte daraus keinen Sinn machen oder es nicht weitergeben.

Wie sich Fehler 520 zeigt

Im Browser zeigt Cloudflare seine eigene Fehlerseite, "Error 520: web server returned an unknown error", zusammen mit einer Ray-ID, die Sie brauchen werden, falls Sie den Cloudflare-Support kontaktieren. Eine einfache curl-Anfrage gegen die Domain zeigt denselben Statuscode:

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

Auf der Cloudflare-Seite zeigen die Tabs Security oder Analytics im Dashboard einen Ausschlag bei 5xx-Antworten, und Enterprise-Konten mit Logpull- oder Logpush-Zugriff können den konkreten Edge-Colo und die Ray-ID für jede fehlgeschlagene Anfrage abrufen. Das sagt Ihnen jedoch nicht, was der Ursprung tatsächlich gesendet hat, der nächste Ort zum Nachsehen ist also Ihr eigener Server.

Prüfen Sie am Ursprung die Webserver- und Anwendungslogs zum selben Zeitstempel wie die Fehler. Suchen Sie nach einem Prozessneustart, einem Speicherzugriffsfehler, einem Out-of-Memory-Kill im Systemlog (dmesg oder journalctl -k), oder einem Anwendungsfehler, der die Anfrage mitten in der Antwort abgebrochen hat. Zeigen die App-Logs überhaupt nichts Ungewöhnliches, liegt das Problem eher in einer Antwort, die technisch fertig wurde, aber eine HTTP-Regel gebrochen hat, etwa einen übergroßen Header.

Was Fehler 520 verursacht

  • Der Ursprungsprozess ist abgestürzt oder hat neu gestartet, während er die Anfrage bearbeitete. Die Verbindung schließt, bevor eine vollständige Antwort hinausgeht. Das ist die häufigste Ursache.
  • Der Ursprung hat die TCP-Verbindung zurückgesetzt (RST), statt sie sauber zu schließen. Anwendungsserver unter Speicherdruck oder mit erreichtem Worker-Timeout tun das oft.
  • Antwort-Header über Cloudflares 16-KB-Limit. Ein großer Set-Cookie-Header, ein Stapel Debug-Header oder ausführliche CORS-Header können die Summe über das treiben, was Cloudflare akzeptiert.
  • Ein Cookie oder ein kombinierter Cookie-Header, der zu groß ist. Session-Daten, Tracking-Cookies oder ein falsch konfigurierter Cookie-Speicher können mit der Zeit über Browser- und Proxy-Limits hinauswachsen.
  • Eine fehlende oder fehlerhafte Statuszeile. Manche Frameworks geben einen rohen Fehlertext zurück statt einer richtigen HTTP-Antwort, wenn eine unbehandelte Ausnahme die Webserver-Schicht erreicht.
  • Der Ursprung hat Nicht-HTTP-Daten auf dem HTTP(S)-Port zurückgegeben. Das passiert nach einem falsch konfigurierten Reverse-Proxy, einem falschen Port-Mapping, oder einem Dienst, der den Port belegt, bevor der eigentliche Webserver das tut.
  • Eine Sicherheitsappliance oder WAF vor dem Ursprung hat die Verbindung mitten in der Antwort abgebrochen. Manche On-Premise-WAFs und Load Balancer beenden Verbindungen, die eine Regel auslösen, was von Cloudflares Seite aus identisch zu einem Absturz aussieht.

So finden Sie heraus, wer schuld ist

Da Cloudflare tatsächlich eine Antwort vom Ursprung bekommen hat, ist Fehler 520 ein starkes Zeichen, dass das Problem eher auf Seiten des Ursprungs liegt als in Cloudflares Netzwerk, anders als bei Fehler 521 oder 522, wo die Verbindung selbst scheiterte. Die offene Frage ist meist, ob es jeden Besucher betrifft oder nur manche.

Der schnellste Weg, das zu klären, ist, eine HTTP-Prüfung von mehreren Standorten gleichzeitig auszuführen. Schlägt eine Prüfung gegen die öffentliche Domain von jedem Standort gleichzeitig fehl, während Nutzer den Fehler melden, ist der Ursprung selbst für alle down oder am Abstürzen, nicht nur für ein Edge-Rechenzentrum. Schlägt sie nur unregelmäßig oder aus bestimmten Regionen fehl, ist der Ursprung womöglich unter der Last aus dieser Region überlastet, oder eine Caching- oder Load-Balancing-Schicht, die nur in einem Teil Ihres Setups vorhanden ist, ist beteiligt. HostTrackers HTTP-Prüfung läuft von Prüfpunkten in mehreren Ländern und meldet das Ergebnis jedes einzelnen getrennt, was das Detail ist, das ein einzelnes curl von Ihrem eigenen Schreibtisch aus nicht liefern kann.

Sie können den Ursprung auch komplett von Cloudflare isolieren, indem Sie ihn direkt mit dem Host-Header der Domain anwählen und so das Edge-Netzwerk umgehen, sodass jeder Fehler, den Sie sehen, zweifellos vom Ursprung kommt:

curl -v -H "Host: example.com" https://ORIGIN_IP/

Ersetzen Sie ORIGIN_IP durch die echte IP-Adresse Ihres Servers. Schlägt auch diese direkte Anfrage fehl oder liefert dieselbe kaputte Antwort, ist der Fehler am Ursprung bestätigt.

So beheben Sie Fehler 520

Wenn Sie Besucher sind

  1. Laden Sie die Seite nach ein oder zwei Minuten neu. Viele 520-Fehler kommen von einem kurzen Absturz oder Neustart, von dem sich der eigene Prozessüberwacher der Website automatisch erholt.
  2. Versuchen Sie ein privates oder Inkognito-Fenster, oder ein anderes Netzwerk. Das schließt einen veralteten lokalen Cache oder eine störende Browser-Erweiterung aus, obwohl ein 520 selten an Ihrer Seite liegt.
  3. Prüfen Sie, ob die Website eine eigene Statusseite veröffentlicht, falls es eine gibt, für einen bekannten Ausfall.
  4. Es gibt nichts auf Ihrer Seite zu konfigurieren, um einen 520 zu beheben. Er wird vom eigenen Server der Website erzeugt, nicht von Ihrem Browser, Ihrem Internetanbieter oder Ihrem DNS-Resolver.

Wenn Sie die Website betreiben

  1. Prüfen Sie die Webserver- und Anwendungslogs des Ursprungs zum genauen Zeitstempel der Fehler, auf der Suche nach einem Absturz, einer unbehandelten Ausnahme oder einem Worker-Neustart.
  2. Umgehen Sie Cloudflare und fragen Sie den Ursprung direkt mit dem Host-Header ab (oben gezeigt), oder nutzen Sie Cloudflares Option "Pause Cloudflare on Site", um zu bestätigen, dass die Antwort unabhängig vom Proxy kaputt ist.
  3. Messen Sie die Größe Ihrer Antwort-Header und Cookies. Ein einzelner großer Set-Cookie-Header oder ein Haufen Debug-Header, die in der Produktion angelassen wurden, können die Summe über 16 KB treiben; entfernen Sie, was Sie nicht brauchen, und verlagern Sie große Session-Daten auf die Serverseite.
  4. Prüfen Sie auf fehlerhafte Antworten: ein Reverse-Proxy oder Load Balancer, der auf das falsche Upstream zeigt, eine App, die Klartext auf einem HTTP-Port zurückgibt, oder eine fehlende Statuszeile aus der Standard-Fehlerbehandlung eines Frameworks.
  5. Prüfen Sie auf Ressourcenerschöpfung am Ursprung: Speicherlimits, Grenzen des Verbindungspools, oder einen Prozessmanager (systemd, pm2, einen Gunicorn- oder uWSGI-Worker-Pool), der in einer Neustartschleife feststeckt.
  6. Sitzt eine WAF, ein Antiviren-Proxy oder ein Load Balancer zwischen dem Internet und Ihrem Anwendungsserver, prüfen Sie dessen eigene Logs auf Verbindungen, die er zur selben Zeit verworfen oder zurückgesetzt hat.

So beugen Sie vor

Fehler 520 taucht meist zuerst als Support-Ticket auf, nicht als Alarm, denn nichts am Ursprung protokolliert zwingend einen gescheiterten Handshake mit Cloudflares Edge so, wie es eine Anwendungsausnahme protokolliert. Eine externe Verfügbarkeitsprüfung, die von außerhalb Ihres eigenen Netzwerks läuft, erkennt denselben Fehler, den ein Besucher sieht, aus derselben Perspektive, bevor ihn jemand melden muss. Die Prüfung aus mehreren Ländern auszuführen zeigt außerdem sofort, ob ein 520 global auftritt oder auf eine Region beschränkt ist, und das ist das Detail, das entscheidet, wo Sie mit der Fehlersuche anfangen.

Verwandte Fehler

Häufig gestellte Fragen

Ist Fehler 520 Cloudflares Schuld oder meine?

Fast immer die des Ursprungs. Cloudflare hat eine Antwort erhalten und konnte daraus keinen Sinn machen oder sie weitergeben, was bedeutet, dass der Ursprungsserver, nicht Cloudflares Netzwerk, die kaputte Antwort erzeugt hat.

Bedeutet Fehler 520, dass meine ganze Website down ist?

Nicht zwingend. Er bedeutet, dass die konkrete Anfrage, die ihn ausgelöst hat, fehlgeschlagen ist. Stürzt der Ursprung unter Last ab, liefert er womöglich manchen Anfragen 520 und anderen normale Antworten, bis das zugrunde liegende Problem behoben ist.

Kann ich Fehler 520 allein aus dem Cloudflare-Dashboard beheben?

Selten. Da die Ursache fast immer am Ursprung liegt, beheben Dashboard-Einstellungen keine abstürzende Anwendung oder einen übergroßen Antwort-Header. Die Ausnahme ist, zu prüfen, ob Ihr SSL/TLS-Modus und Ihre Ursprungseinstellungen zu dem passen, was Ihr Server tatsächlich tut, was wenigstens eine Fehlkonfiguration auf Cloudflare-Seite ausschließt.

Was ist der Unterschied zwischen Fehler 520 und einem einfachen 502 Bad Gateway?

502 ist der allgemeine HTTP-Status für eine ungültige Antwort von einem Upstream-Server, den jeder Reverse-Proxy verwendet. Cloudflare nutzt 520 speziell als eigenes Auffangbecken für eine Antwort, die so kaputt ist, dass sie in keinen von Cloudflares übrigen benannten 5xx-Codes passt, weshalb Cloudflares Fehlerseite und die Ray-ID statt einer generischen 502-Seite erscheinen.

Kann ein großes Cookie tatsächlich einen 520 verursachen?

Ja. Cloudflare setzt ein Limit für die gesamte Antwort-Header-Größe durch, derzeit rund 16 KB, und Cookies zählen dazu. Eine Anwendung, die ständig an ein Session-Cookie anhängt, oder die mehrere große Cookies gleichzeitig setzt, kann dieses Limit überschreiten und einen 520 auslösen, selbst wenn die Anwendung selbst keinen Fehler hat.

Behebt eine Wiederholung der Anfrage das Problem?

Manchmal, wenn die Ursache ein vorübergehender Absturz oder Neustart am Ursprung war, von dem er sich bereits erholt hat. Sendet der Ursprung durchgehend kaputte Antworten, zum Beispiel wegen eines übergroßen Headers bei jeder Anfrage, hilft eine Wiederholung erst, wenn der Ursprung behoben ist.

Jetzt prüfen

Führen Sie die kostenlose Prüfung für Ihre eigene Website aus - ganz ohne Konto.

HTTP check

Dauerhaft überwachen

Werden Sie benachrichtigt, sobald etwas ausfällt: HostTracker prüft von über 300 Standorten aus und benachrichtigt Sie per E-Mail, SMS, Slack, Telegram und mehr.

HostTracker Funktionen

Mehr in diesem Bereich: Beheben: Anleitungen zu den Fehlern, die wirklich vorkommen