Přejít na hlavní obsah

Návody / Opravte to: návody na chyby, se kterými se lidé skutečně setkávají

Chyba Cloudflare 521: web server is down - příčiny a opravy

Chyba Cloudflare 521 znamená, že se Cloudflare dostal k IP adrese vašeho originu, ale server spojení aktivně odmítl, obvykle proto, že na portu, který Cloudflare zkusil, nikdo neposlouchá, firewall požadavek zablokoval, nebo je samotný webový server zastavený. Liší se od timeoutu: něco na originu okamžitě odpovědělo "ne".

Co znamená chyba 521

Když Cloudflare proxíruje požadavek, otevře TCP spojení k vašemu originu na portu nastaveném pro daný záznam. Chyba 521 nastane, když origin místo přijetí spojení pošle zpátky TCP reset (RST) nebo ICMP "connection refused". To je jednoznačné odmítnutí, ne ticho. Porovnejte to s chybou 522, kde Cloudflare v rámci svého časového limitu nedostane žádnou odpověď, nebo s chybou 520, kde se spojení povede, ale HTTP odpověď, která následuje, je poškozená.

Jak se chyba 521 projevuje

Návštěvníci vidí vlastní stránku Cloudflare "Error 521: web server is down" s Ray ID. Požadavek curl proti doméně vrátí stejný stav:

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

Protože origin odmítl spojení na síťové vrstvě, k vaší aplikaci se nic nedostane, takže logy vaší aplikace u selhaných požadavků obvykle neukážou vůbec nic. Důkazy se nacházejí blíž síti: vlastní startovací a přístupové logy webového serveru, logy spojení vašeho firewallu nebo bezpečnostní skupiny a systémové logy na hostiteli originu (journalctl -u nginx, systemctl status nginx nebo ekvivalent pro váš stack).

Co způsobuje chybu 521

  • Proces webového serveru je zastavený nebo spadl. Na portu vůbec nikdo neposlouchá, takže je jakýkoli pokus o spojení okamžitě odmítnut.
  • Cloudflare je nastaven, aby se dotazoval na špatný port. Pokud port originu nastavený u DNS záznamu nebo v síťovém nastavení Cloudflare neodpovídá tomu, na čem váš server skutečně poslouchá, každé spojení je odmítnuto.
  • Firewall nebo cloudová bezpečnostní skupina blokuje rozsahy IP Cloudflare. Pokud pravidlo povoluje jen konkrétní zdrojové IP a aktuální zveřejněné rozsahy Cloudflare na něm nejsou, nebo byly a později se odstranily, spojení z edge Cloudflare se zahazují nebo odmítají.
  • Režim SSL/TLS je nastavený na Full nebo Full strict, ale na originu na portu 443 nikdo neposlouchá. Tyto režimy vyžadují, aby se Cloudflare k originu připojoval přes HTTPS; pokud origin obsluhuje jen obyčejné HTTP, nebo se nastavení certifikátu nikdy nedokončilo, pokus o HTTPS spojení je odmítnutý.
  • Na portu, který webový server očekává, už je navázaná nesouvisející služba, takže se samotný webový server vůbec nespustí.

521 vs 523 vs 522

Tyto tři kódy se snadno pletou, protože všechny popisují spojení, ze kterého nikdy nevzešla HTTP odpověď, ale každý znamená, že Cloudflare selhal v jiné fázi.

  • 521, web server is down: Cloudflare se dostal k IP adrese originu a něco tam spojení aktivně odmítlo (TCP reset nebo ICMP unreachable). Server existuje a odpověděl, jen odmítnutím.
  • 523, origin is unreachable: Cloudflare se tak daleko vůbec nedostal. To ukazuje na problém se směrováním, DNS nebo IP adresou, běžně na DNS záznam u Cloudflare, který po migraci serveru pořád míří na starou IP adresu, nebo na nefunkční soukromou síťovou trasu (například Cloudflare Tunnel).
  • 522, connection timed out: Cloudflare se pokusil o TCP handshake, ale včas nedostal žádnou odpověď, ani přijetí, ani odmítnutí. Pro tento případ viz samostatný návod na chybu Cloudflare 522.

Jak zjistit, čí je to chyba

521 je silný signál, že problém sedí na straně originu za edge Cloudflare, protože odmítnutí přišlo z vašeho vlastního serveru nebo ze sítě přímo před ním. Provozně důležitá otázka je, jestli to postihuje celý web, nebo jen část provozu, a nejrychlejší způsob, jak to zjistit, je spustit HTTP kontrolu z několika míst najednou. HTTP kontrola HostTracker se dotazuje na doménu z kontrolních bodů ve více zemích a hlásí každý výsledek zvlášť, takže hned uvidíte, jestli stejnou 521 dostávají všechna místa, nebo jen některá, což by ukazovalo na částečné pravidlo firewallu nebo load balancer s jedním nefunkčním backendem, ne na to, že je celý server nedostupný.

Jak opravit chybu 521

Pokud jste návštěvník

  1. Po krátkém čekání znovu načtěte stránku. Pokud provozovatel webu restartuje server, oprava už možná probíhá.
  2. Zkontrolujte stavovou stránku webu, pokud nějakou má, nebo jeho sociální sítě kvůli oznámení o známém výpadku.
  3. Na vaší straně není co měnit. Odmítnutí nastává na vlastním serveru webu, ne ve vašem prohlížeči, DNS ani u poskytovatele internetu.

Pokud web provozujete

  1. Ověřte, že proces webového serveru skutečně běží: systemctl status nginx (nebo ekvivalent) a zkontrolujte jeho logy kvůli pádu nebo neúspěšnému restartu.
  2. Ověřte, že port, na který je Cloudflare nastavený, odpovídá tomu, na čem váš server poslouchá. Porovnejte port originu v DNS záznamu nebo síťovém nastavení v dashboardu Cloudflare se skutečnými naslouchajícími porty serveru (ss -tlnp na Linuxu).
  3. Zkontrolujte, jestli váš firewall nebo cloudová bezpečnostní skupina povoluje na daném portu příchozí provoz ze zveřejněných rozsahů IP Cloudflare. Cloudflare zveřejňuje své aktuální rozsahy IPv4 a IPv6 na cloudflare.com/ips; pravidlo postavené na staré kopii tohoto seznamu začne odmítat nově přidané rozsahy.
  4. Pokud je váš režim šifrování SSL/TLS Full nebo Full strict, ověřte, že na originu skutečně na portu 443 něco poslouchá s certifikátem, který Cloudflare dokáže ověřit. Dočasné přepnutí na Flexible je užitečný diagnostický krok, který tohle potvrdí jako příčinu, ne trvalá oprava, protože Flexible nechává spojení mezi Cloudflare a vaším originem nešifrované.
  5. Obejděte Cloudflare a otestujte origin přímo, abyste viděli surové odmítnutí bez edge vrstvy uprostřed:
    curl -v -H "Host: example.com" https://ORIGIN_IP:PORT/
    "Connection refused" tady potvrdí, že problém je v naslouchání nebo firewallu originu, ne v Cloudflare.
  6. Zkontrolujte, že port, který váš webový server očekává, nezabral nikdo jiný na hostiteli, což by webovému serveru bránilo se na něj při startu navázat.

Jak jí předejít

Pravidlo firewallu, které povoluje jen rozsahy Cloudflare, je běžný způsob, jak se 521 objeví znovu za pár měsíců, protože Cloudflare své rozsahy IP časem přidává a ruší, a jednou zkopírované pravidlo postupně zastará. HTTP kontrola běžící mimo vaši síť zachytí výsledný výpadek stejně, jak by ho zažil návštěvník, místo aby to záviselo na tom, že si někdo všimne nedostupného webu a nahlásí to.

Související chyby

Často kladené otázky

Je chyba 521 totéž jako fyzicky vypnutý server?

Ne nutně. Znamená, že něco odmítlo TCP spojení, což může být zastavený proces webového serveru, zatímco stroj samotný běží dál, firewall odmítající požadavek, nesoulad režimu TLS, ale i skutečně vypnutý server.

Jaký je nejrychlejší způsob, jak potvrdit, že příčinou je firewall?

Dotažte se přímo na origin s jeho IP adresou a hlavičkou Host domény, obejděte Cloudflare. Pokud je i tohle odmítnuto, blokace bude spíš u vlastního firewallu nebo bezpečnostní skupiny originu než u něčeho specifického pro rozsahy IP Cloudflare.

Proč by chyba 521 začala nastávat bez jakékoli změny na mém serveru?

Cloudflare pravidelně aktualizuje své zveřejněné rozsahy IP. Pravidlo firewallu postavené na staré kopii tohoto seznamu přestane odpovídat nově přidaným rozsahům, takže požadavky z nich se odmítají, i když se na vašem vlastním serveru nic nezměnilo.

Vyřeší přepnutí SSL/TLS režimu na Flexible chybu 521 trvale?

Může zamaskovat nesoulad Full nebo Full strict, protože Flexible nevyžaduje HTTPS na originu, ale zároveň to znamená, že spojení mezi Cloudflare a vaším serverem je nešifrované. Berte to jako diagnostický krok, pak opravte TLS naslouchání originu a přepněte zpátky.

Jak se 521 liší od 523?

521 znamená, že se Cloudflare dostal k originu a byl odmítnut. 523 znamená, že se k němu Cloudflare vůbec nedostal, což ukazuje na DNS, směrování nebo rozbitý tunel, ne na nic, co udělal samotný origin server.

Zkontrolovat hned

Spusťte bezplatnou kontrolu na svém webu - bez registrace.

HTTP check

Sledovat trvale

Dostanete upozornění ve chvíli, kdy něco přestane fungovat: HostTracker kontroluje z více než 300 lokalit a upozorní vás e-mailem, SMS, přes Slack, Telegram a další.

Funkce HostTracker

Více v této sekci: Opravte to: návody na chyby, se kterými se lidé skutečně setkávají