Zum Hauptinhalt springen

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

Cloudflare-Fehler 522: Zeitüberschreitung - Ursachen und Lösungen

Cloudflare-Fehler 522 bedeutet, Cloudflare hat versucht, eine TCP-Verbindung zu Ihrem Ursprungsserver zu öffnen, und innerhalb seiner Zeitüberschreitung, etwa 15 Sekunden, keine Antwort bekommen. Anders als bei einer abgelehnten Verbindung hat niemand nein gesagt; der Ursprung hat einfach nie rechtzeitig geantwortet.

Was Fehler 522 bedeutet

Jede weitergeleitete Anfrage beginnt damit, dass Cloudflare eine TCP-Verbindung zu Ihrem Ursprung öffnet, bevor es die HTTP-Anfrage selbst senden kann. Fehler 522 tritt auf, wenn dieser Handshake, das TCP-SYN und das erwartete SYN-ACK zurück, nicht innerhalb von Cloudflares Zeitfenster abgeschlossen wird. Der Ursprung könnte zu überlastet sein, um neue Verbindungen anzunehmen, eine Firewall könnte die Pakete stillschweigend verwerfen statt sie abzulehnen, oder der Netzwerkpfad zwischen Cloudflare und dem Ursprung könnte überlastet sein.

Das unterscheidet sich von Fehler 521, wo der Ursprung die Verbindung aktiv ablehnt, und von Fehler 524, wo die TCP-Verbindung gelingt, aber die HTTP-Antwort selbst nie rechtzeitig eintrifft. Fehler 522 ist speziell ein Scheitern auf der Handshake-Stufe, bevor überhaupt eine HTTP-Anfrage gesendet wird.

Wie sich Fehler 522 zeigt

Besucher sehen Cloudflares Seite, "Error 522: connection timed out", mit einer Ray-ID. Eine curl-Anfrage gegen die Domain zeigt denselben Status nach ungefähr Cloudflares Zeitfenster:

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

Da der TCP-Handshake nie fertig wurde, erreichte keine Anfrage Ihre Anwendung, die Anwendungslogs sind für den fehlgeschlagenen Zeitraum also typischerweise leer. Schauen Sie stattdessen auf Kennzahlen der Verbindungsebene: Serverlast und CPU zum Zeitpunkt der Fehler, die Zahl der aufgebauten und wartenden Verbindungen (ss -s oder netstat -an | grep SYN_RECV), und Firewall- oder Load-Balancer-Logs auf verworfene oder gefilterte Pakete auf dem betreffenden Port.

Was Fehler 522 verursacht

  • Der Ursprungsserver ist überlastet und kann neue Verbindungen nicht schnell genug annehmen. Hohe CPU-Last, eine volle Verbindungswarteschlange oder ein erschöpfter Worker-Pool erzeugen das alles.
  • Eine Firewall oder Security Group verwirft Cloudflares SYN-Pakete stillschweigend, statt ein TCP-Reset zu senden. Ein Verwerfen sieht von Cloudflares Seite identisch zu einem langsamen oder toten Server aus, während ein Reset stattdessen Fehler 521 erzeugen würde.
  • TCP-Keepalive ist am Ursprung deaktiviert, was die Verbindungsfluktuation erhöht und die Wahrscheinlichkeit, dass ein neuer Handshake genau in einem Moment ankommt, in dem der Server zu beschäftigt ist, ihn anzunehmen.
  • Die IP-Adresse des Ursprungs ist nicht korrekt auf der Positivliste, wo das Netzwerk eine explizite Positivliste statt einer einfachen Firewall-Regel verlangt, sodass Cloudflares Anfragen gefiltert werden, bevor sie den lauschenden Socket erreichen.
  • Netzwerküberlastung oder Paketverlust zwischen Cloudflare und dem Ursprung, häufiger bei Ursprüngen hinter Consumer-Hosting oder stark überbuchtem Hosting.

522 gegenüber 524

Beide Codes sind Zeitüberschreitungen, treten aber an unterschiedlichen Punkten der Anfrage auf. Fehler 522 passiert, bevor überhaupt eine HTTP-Anfrage gesendet wird: Der TCP-Handshake selbst kommt nie zustande. Fehler 524 passiert danach: Die TCP-Verbindung gelingt, und Cloudflare sendet die HTTP-Anfrage, aber der Ursprung schickt innerhalb von 100 Sekunden keine vollständige Antwort zurück. Ein 524 deutet meist auf eine langsame Anwendung hin, zum Beispiel einen Endpunkt für Berichtserzeugung, eine lange Datenbankabfrage, oder eine per Cron ausgelöste Anfrage, die legitim Minuten braucht. Die Lösung für einen 524 ist fast immer, den Endpunkt zu beschleunigen oder die langsame Arbeit aus dem Request-Response-Zyklus in einen Hintergrundjob zu verlagern, den der Client abfragt; Cloudflare-Enterprise-Pläne können auch das 100-Sekunden-Limit für bestimmte Routen anheben, aber das behandelt das Symptom statt des langsamen Endpunkts selbst.

So finden Sie heraus, wer schuld ist

Ein 522 entsteht fast immer am oder nahe am Ursprung, da Cloudflares eigenes Netzwerk hochverfügbar ist und selten die Quelle einer Handshake-Zeitüberschreitung ist. Die nützliche Frage ist, ob der Ursprung komplett down ist oder nur unter Last aus bestimmten Regionen kämpft. Der schnellste Weg, das zu prüfen, ist, eine HTTP-Prüfung von mehreren Standorten gleichzeitig auszuführen: HostTrackers HTTP-Prüfung fragt die Domain von Prüfpunkten in mehreren Ländern ab und meldet jedes Ergebnis für sich, sodass ein Muster, bei dem manche Standorte eine Zeitüberschreitung bekommen und andere erfolgreich sind, auf einen überlasteten Server hindeutet, der manche Anfragen bearbeitet, aber nicht alle, während eine einheitliche Zeitüberschreitung überall darauf hindeutet, dass der Ursprung komplett down ist oder eine Firewall jede Verbindung verwirft.

So beheben Sie Fehler 522

Wenn Sie Besucher sind

  1. Laden Sie nach einer kurzen Wartezeit neu. Ein kurzzeitiger Lastspitze oder ein kurzer Netzwerkaussetzer klärt sich oft von selbst.
  2. Prüfen Sie die Statusseite der Website, falls es eine gibt, auf einen bekannten Vorfall.
  3. Es gibt nichts auf Ihrer Seite zu beheben. Die Zeitüberschreitung passiert zwischen Cloudflare und dem eigenen Server der Website, nicht in Ihrem Browser oder Ihrer Verbindung zu Cloudflare.

Wenn Sie die Website betreiben

  1. Prüfen Sie Serverlast und verfügbare Verbindungskapazität zum Zeitpunkt der Fehler: CPU, Speicher, und die konfigurierten Verbindungs- oder Worker-Limits des Webservers (zum Beispiel nginx' worker_connections).
  2. Bestätigen Sie, dass Ihre Firewall oder Security Group Cloudflares veröffentlichte IP-Bereiche auf dem betreffenden Port erlaubt, und dass sie mit einem Reset ablehnt statt Pakete stillschweigend zu verwerfen, was einen 522 wenigstens in einen leichter zu diagnostizierenden 521 verwandelt.
  3. Aktivieren Sie TCP-Keepalive am Webserver des Ursprungs und an jedem davor liegenden Load Balancer, und prüfen Sie, ob die Keepalive-Einstellungen auf Betriebssystemebene nicht auf Standardwerte gesetzt sind, die weit länger sind, als die Verbindung tatsächlich braucht.
  4. Falls Ihr Hosting oder Cloud-Netzwerk eine explizite IP-Positivliste getrennt von der Firewall verlangt, bestätigen Sie, dass die IP des Ursprungs darauf steht.
  5. Stoppen Sie den rohen Handshake direkt gegen den Ursprung, unter Umgehung von Cloudflare, um zu sehen, ob die Verzögerung überhaupt beim Erreichen Ihres Servers liegt:
    curl -v -H "Host: example.com" --connect-timeout 5 https://ORIGIN_IP/
    Eine Verbindung, die hier hängen bleibt, bestätigt, dass der Ursprung selbst langsam ist, Verbindungen anzunehmen, und nicht etwas Cloudflare-Spezifisches.
  6. Bei langsamen einzelnen Endpunkten statt eines generell überlasteten Servers verlagern Sie lang laufende Arbeit (Berichte, Exporte, Batch-Jobs) aus dem Request-Pfad in einen Hintergrundjob, den der Client abfragt oder über den er benachrichtigt wird, und erwägen Sie eine Cloudflare-Enterprise-Timeout-Erhöhung nur als Notlösung für Routen, die Sie nicht schnell beschleunigen können.

So beugen Sie vor

Ein Server, der seinen Handshake nur unter Spitzenlast scheitern lässt, besteht jede manuelle Prüfung, die Sie selbst durchführen, da Sie ihn kaum genau in dem Moment testen werden, in dem er kämpft. Eine HTTP-Prüfung, die planmäßig von außerhalb Ihres Netzwerks läuft, erkennt dieses Fehlerfenster auch dann, wenn niemand hinschaut, und aus mehreren Ländern ausgeführt zeigt sie, ob die Verlangsamung eine globale Kapazitätsfrage oder ein regionaler Netzwerkpfad ist.

Verwandte Fehler

Häufig gestellte Fragen

Wie lange wartet Cloudflare, bevor Fehler 522 angezeigt wird?

Rund 15 Sekunden für den TCP-Handshake. Hat der Ursprung die Verbindung bis dahin nicht angenommen, gibt Cloudflare auf und liefert dem Besucher 522.

Ist 522 dasselbe wie ein down gegangener Server?

Nicht immer. Es kann auch bedeuten, dass der Server läuft, aber zu beschäftigt ist, um rechtzeitig eine neue Verbindung anzunehmen, oder dass eine Firewall den Verbindungsversuch verwirft, ohne ein Reset zu senden.

Warum verwirft eine Firewall eine Verbindung, statt sie abzulehnen?

Manche Standard-Firewall- oder Security-Group-Konfigurationen verwerfen Pakete stillschweigend, die keiner Erlaubnisregel entsprechen, statt ein TCP-Reset zu senden. Dieses stille Verwerfen macht aus dem, was ein schneller, eindeutiger 521 sein könnte, einen langsameren, mehrdeutigeren 522.

Bedeutet 522, dass ich meinen Server aufrüsten muss?

Nicht zwingend. Prüfen Sie vor dem Skalieren, ob Keepalive deaktiviert ist, ob die Firewall Cloudflares Bereiche stillschweigend verwirft, und ob die Verbindungslimits in der Webserver-Konfiguration niedriger gesetzt sind, als der tatsächliche Traffic verlangt.

Was ist der Unterschied zwischen 522 und 524?

522 ist ein Scheitern, den TCP-Handshake überhaupt abzuschließen. 524 ist eine abgeschlossene Verbindung, bei der die HTTP-Antwort selbst zu lange braucht, meist wegen langsamer Anwendungslogik statt eines Netzwerk- oder Kapazitätsproblems.

Kann eine einzelne langsame Datenbankabfrage einen 522 verursachen?

Nicht direkt, da 522 passiert, bevor überhaupt eine Anfrage gesendet wird. Eine langsame Abfrage erzeugt eher einen 524, bei dem die Verbindung gelang, die Antwort aber zu lange brauchte, um einzutreffen.

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