Naar hoofdinhoud springen

Handleidingen / Oplossen: handleidingen voor veelvoorkomende foutmeldingen

Cloudflare Error 522: connection timed out - oorzaken en oplossingen

Cloudflare error 522 betekent dat Cloudflare probeerde een TCP-verbinding met uw origin-server te openen en binnen zijn timeout, ongeveer 15 seconden, geen antwoord kreeg. Anders dan bij een geweigerde verbinding zei niets "nee"; de origin antwoordde simpelweg nooit op tijd.

Wat error 522 betekent

Elk doorgeproxyd verzoek begint met Cloudflare die een TCP-verbinding opent met uw origin voordat het het HTTP-verzoek zelf kan versturen. Error 522 treedt op wanneer die handshake, de TCP SYN en de verwachte SYN-ACK terug, niet binnen het timeoutvenster van Cloudflare wordt afgerond. De origin kan te overbelast zijn om nieuwe verbindingen te accepteren, een firewall kan de pakketten stilzwijgend droppen in plaats van ze te weigeren, of het netwerkpad tussen Cloudflare en de origin kan verstopt zijn.

Dit verschilt van error 521, waarbij de origin de verbinding actief weigert, en van error 524, waarbij de TCP-verbinding wel lukt maar het HTTP-antwoord zelf nooit op tijd binnenkomt. Error 522 is specifiek een storing in de handshakefase, voordat er zelfs maar een HTTP-verzoek is verstuurd.

Hoe error 522 verschijnt

Bezoekers zien de pagina van Cloudflare, "Error 522: connection timed out", met een Ray ID. Een curl-verzoek naar het domein toont dezelfde status na ongeveer het timeoutvenster van Cloudflare:

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

Omdat de TCP-handshake nooit werd afgerond, bereikte geen enkel verzoek uw applicatie, dus zijn de applicatielogs voor de mislukte periode doorgaans leeg. Kijk in plaats daarvan naar statistieken op verbindingsniveau: de serverbelasting en CPU op het moment van de fouten, het aantal opgezette en wachtende verbindingen (ss -s of netstat -an | grep SYN_RECV), en firewall- of loadbalancerlogs voor gedropte of gefilterde pakketten op de relevante poort.

Wat error 522 veroorzaakt

  • De origin-server is overbelast en kan niet snel genoeg nieuwe verbindingen accepteren. Hoge CPU, een volle wachtrij voor verbindingen, of een uitgeputte workerpool veroorzaken dit allemaal.
  • Een firewall of security group dropt de SYN-pakketten van Cloudflare stilzwijgend in plaats van een TCP-reset te sturen. Een drop ziet er vanuit Cloudflare identiek uit aan een trage of dode server, terwijl een reset in plaats daarvan error 521 zou opleveren.
  • TCP keepalive staat uit op de origin, wat het verloop van verbindingen verhoogt en de kans vergroot dat een nieuwe handshake plaatsvindt op een moment dat de server te druk is om hem te accepteren.
  • Het IP-adres van de origin staat niet correct op de allowlist waar het netwerk een expliciete allowlist vereist in plaats van een simpele firewallregel, waardoor de verzoeken van Cloudflare worden gefilterd voordat ze de luisterende socket bereiken.
  • Netwerkcongestie of pakketverlies tussen Cloudflare en de origin, vaker voorkomend bij origins achter consumentenhosting of zwaar overtekende hosting.

522 versus 524

Beide codes zijn timeouts, maar ze doen zich voor op verschillende momenten in het verzoek. Error 522 gebeurt voordat er enig HTTP-verzoek is verstuurd: de TCP-handshake zelf wordt nooit afgerond. Error 524 gebeurt daarna: de TCP-verbinding lukt en Cloudflare stuurt het HTTP-verzoek, maar de origin stuurt binnen 100 seconden geen compleet antwoord terug. Een 524 wijst meestal op een trage applicatie, bijvoorbeeld een endpoint voor rapportgeneratie, een lange databasequery, of een door cron aangestuurd verzoek dat legitiem minuten duurt. De oplossing voor een 524 is vrijwel altijd het endpoint sneller maken of het trage werk buiten de request-responscyclus verplaatsen naar een achtergrondtaak waarvoor de client op een resultaat polt; Cloudflare Enterprise-abonnementen kunnen ook de limiet van 100 seconden voor specifieke routes verhogen, maar dat behandelt het symptoom in plaats van het trage endpoint zelf.

Hoe u vaststelt wiens fout het is

Een 522 ontstaat vrijwel altijd bij of dicht bij de origin, aangezien het eigen netwerk van Cloudflare zeer beschikbaar is en zelden de bron van een handshaketimeout. De nuttige vraag is of de origin helemaal down is of gewoon worstelt onder belasting vanuit bepaalde regio's. De snelste manier om dat te controleren is een HTTP-controle vanaf meerdere locaties tegelijk uit te voeren: de HTTP-controle van HostTracker bevraagt het domein vanaf meetpunten in meerdere landen en rapporteert elk resultaat apart, dus een patroon waarbij sommige locaties een timeout krijgen en andere slagen wijst op een overbelaste server die sommige verzoeken wel afhandelt maar niet allemaal, terwijl een uniforme timeout overal wijst op een origin die volledig down is of een firewall die elke verbinding dropt.

Hoe u error 522 oplost

Bent u de bezoeker

  1. Laad opnieuw na een korte wachttijd. Een tijdelijke piek in belasting of een kort netwerkhaperinkje lost zich vaak vanzelf op.
  2. Controleer de statuspagina van de site, als die er is, voor een bekend incident.
  3. Er valt aan uw kant niets op te lossen. De timeout gebeurt tussen Cloudflare en de eigen server van de site, niet in uw browser of uw verbinding met Cloudflare.

Beheert u de site

  1. Controleer de serverbelasting en beschikbare verbindingscapaciteit op het moment van de storingen: CPU, geheugen, en de geconfigureerde verbindings- of workerlimieten van de webserver (bijvoorbeeld worker_connections van nginx).
  2. Bevestig dat uw firewall of security group de gepubliceerde IP-reeksen van Cloudflare toestaat op de relevante poort, en dat hij weigert met een reset in plaats van pakketten stilzwijgend te droppen, wat een 522 op zijn minst verandert in een gemakkelijker te diagnosticeren 521.
  3. Schakel TCP keepalive in op de webserver van de origin en elke loadbalancer daarvoor, en controleer of de OS-instellingen voor keepalive niet op standaardwaarden staan die veel langer zijn dan de verbinding daadwerkelijk nodig heeft.
  4. Vereist uw hosting- of cloudnetwerk een expliciete IP-allowlist los van de firewall, bevestig dan dat het IP-adres van de origin daarop staat.
  5. Meet de rauwe handshake rechtstreeks tegen de origin, met omzeiling van Cloudflare, om te zien of de vertraging al zit in het bereiken van uw server:
    curl -v -H "Host: example.com" --connect-timeout 5 https://ORIGIN_IP/
    Een verbinding die hier blijft hangen bevestigt dat de origin zelf traag is met het accepteren van verbindingen, niet iets specifiek aan Cloudflare.
  6. Verplaats bij trage individuele endpoints in plaats van een algemeen overbelaste server het langlopende werk (rapporten, exports, batchtaken) uit het requestpad naar een achtergrondtaak waarvoor de client polt of waarover hij een melding krijgt, en overweeg een verhoogde timeout van Cloudflare Enterprise alleen als tijdelijke maatregel voor routes die u niet snel kunt versnellen.

Hoe u het voorkomt

Een server die zijn handshake alleen faalt bij piekbelasting doorstaat elke handmatige controle die u zelf uitvoert, omdat u hem waarschijnlijk niet test op precies het moment dat hij worstelt. Een HTTP-controle die volgens schema van buiten uw netwerk draait vangt dat storingsvenster ook op wanneer niemand kijkt, en hem vanuit meerdere landen laten draaien laat zien of de vertraging een globaal capaciteitsprobleem is of een regionaal netwerkpad.

Gerelateerde fouten

Veelgestelde vragen

Hoe lang wacht Cloudflare voordat het error 522 toont?

Ongeveer 15 seconden voor de TCP-handshake. Heeft de origin de verbinding tegen die tijd niet geaccepteerd, dan geeft Cloudflare het op en geeft het de bezoeker 522 terug.

Is 522 hetzelfde als dat mijn server down is?

Niet altijd. Het kan ook betekenen dat de server wel draait maar te druk is om op tijd een nieuwe verbinding te accepteren, of dat een firewall de verbindingspoging dropt zonder een reset te sturen.

Waarom dropt een firewall een verbinding in plaats van hem te weigeren?

Sommige standaard firewall- of security-group-configuraties negeren stilzwijgend pakketten die niet aan een allow-regel voldoen, in plaats van een TCP-reset te sturen. Die stille drop is wat een anders snelle, duidelijke 521 verandert in een tragere, dubbelzinnigere 522.

Betekent 522 dat ik mijn server moet opschalen?

Niet per se. Controleer voordat u opschaalt of keepalive uitstaat, of de firewall de reeksen van Cloudflare stilzwijgend dropt, en of verbindingslimieten in de webserverconfiguratie lager staan dan het verkeer daadwerkelijk vraagt.

Wat is het verschil tussen 522 en 524?

522 is het niet eens afronden van de TCP-handshake. 524 is een voltooide verbinding waarbij het HTTP-antwoord zelf te lang duurt, meestal vanwege trage applicatielogica in plaats van een netwerk- of capaciteitsprobleem.

Kan één trage databasequery een 522 veroorzaken?

Niet rechtstreeks, aangezien 522 gebeurt voordat enig verzoek is verstuurd. Een trage query levert eerder een 524 op, waarbij de verbinding wel lukte maar het antwoord te lang duurde om aan te komen.

Nu controleren

Voer de gratis check uit op je eigen site, zonder account.

HTTP check

Dit permanent monitoren

Ontvang een melding zodra er iets misgaat: HostTracker controleert vanaf meer dan 300 locaties en waarschuwt je via e-mail, sms, Slack, Telegram en meer.

HostTracker-functies

Meer in dit onderdeel: Oplossen: handleidingen voor veelvoorkomende foutmeldingen