Jak szybko przywrócić funkcjonalność witryny

Przeglądanie zasobów dostępnych w globalnej sieci internetowej najczęściej rozpoczyna się od przesłania zapytania do konkretnego hosta, który znajduje się na serwerze przechowującym te dane. Proces ten może być zainicjowany za pomocą różnorodnych urządzeń, takich jak komputery osobiste, smartfony, a także inne urządzenia posiadające dostęp do internetu.

W tym scenariuszu urządzenie, które wysyła żądanie o dane do serwera, nazywamy klientem, a samo żądanie jest określane jako żądanie HTTP.

HTTP, czyli protokół transferu hipertekstu, to zbiór zasad regulujących wymianę informacji w internecie. Kiedy klient zwraca się do serwera z zapytaniem o dany zasób, mówimy, że wysłał żądanie HTTP.

W odpowiedzi na zapytanie klienta, oprócz przesłania żądanego zasobu w przypadku pozytywnej obsługi, serwer generuje także trójcyfrowe kody statusu, które informują o sposobie przetworzenia zapytania.

Sytuacje związane z żądaniem zasobu mogą być różne – od pomyślnego przesłania, poprzez przekierowanie, aż do sytuacji, gdy poszukiwane zasoby nie zostaną odnalezione na serwerze. Informacje o statusie żądania są przekazywane za pomocą wspomnianych kodów statusu.

Kody statusu są podzielone na różne klasy, które można rozpoznać po pierwszej cyfrze kodu. Kody rozpoczynające się od 1 to kody informacyjne, które sygnalizują, że żądanie zostało odebrane i jest aktualnie w trakcie realizacji. Te, które zaczynają się od 2, świadczą o tym, że żądanie klienta zostało pomyślnie odebrane, zrozumiane i zaakceptowane.

Kody rozpoczynające się cyfrą 3 oznaczają przekierowanie, te z cyfrą 4 sygnalizują błąd po stronie klienta, a te zaczynające się od 5 – błąd serwera.

Istnieją oficjalne kody statusu, zdefiniowane w standardzie HTTP, a także nieoficjalne, które poszerzają zakres tych oficjalnych. Przykładem nieoficjalnego kodu jest 521, oznaczający, że serwer WWW jest niedostępny. Ten kod jest wykorzystywany przez usługę Cloudflare, która działa jako odwrotne proxy.

Odwrotne serwery proxy to serwery pośredniczące, umiejscowione pomiędzy klientami a serwerami WWW. Przechwytują one żądania od klientów i przekazują je do serwerów WWW. Taka architektura sprawia, że klient nie komunikuje się bezpośrednio z serwerem WWW, który udostępnia żądane zasoby.

Odwrotne serwery proxy mają na celu ochronę tożsamości serwerów WWW, zwiększenie ich bezpieczeństwa, niezawodności i wydajności, a także pomagają w równoważeniu obciążenia w przypadku witryn o dużym ruchu.

Przykładem usług, które wykorzystują odwrotne proxy, jest sieć dostarczania treści (CDN) Cloudflare. CDN to zbiór serwerów, które są rozlokowane geograficznie i przechowują kopie treści internetowych w pobliżu fizycznej lokalizacji użytkowników, co przekłada się na szybsze ładowanie stron.

Błąd 521, „Serwer WWW jest niedostępny”, występuje, gdy serwer źródłowy, z którego klient próbuje uzyskać dane, odrzuca połączenia z serwera proxy Cloudflare. Aby dostarczyć żądaną treść klientowi, serwer proxy Cloudflare nawiązuje połączenie z serwerem źródłowym, który posiada dany zasób, korzystając z portów 80 lub 443.

Czasami serwer źródłowy bezpośrednio odmawia połączenia z serwerem proxy Cloudflare, odsyłając komunikat o odmowie połączenia. W przypadku napotkania odmowy połączenia ze strony serwera źródłowego, Cloudflare wyświetla użytkownikowi błąd 521 – „Web Server is Down”.

Przyczyny występowania błędu 521

Chociaż błąd 521 wskazuje na niedostępność serwera WWW, nie zawsze jest to spowodowane awarią. Istnieją inne czynniki, które mogą prowadzić do jego wystąpienia. Do potencjalnych przyczyn błędu 521 zaliczamy:

# 1. Niedostępność serwera źródłowego

Gdy serwer źródłowy, który zawiera poszukiwany zasób, jest wyłączony, usługa odwrotnego proxy Cloudflare nie ma możliwości nawiązania z nim połączenia. Skutkuje to wyświetleniem błędu 521. Błąd ten może również wystąpić, gdy niektóre procesy serwera WWW nie działają prawidłowo, co uniemożliwia Cloudflare połączenie.

#2. Blokowanie żądań z Cloudflare przez serwer źródłowy

Usługi odwrotnego proxy Cloudflare przyjmują żądania od klientów i przekazują je dalej do serwerów, które posiadają żądane zasoby. Zdarza się, że zabezpieczenia serwera źródłowego, takie jak zapora ogniowa, mogą rozpoznać adresy IP Cloudflare jako generujące zbyt wiele żądań i potraktować je jako atak.

W rezultacie adresy IP Cloudflare mogą zostać zablokowane, uniemożliwiając Cloudflare połączenie z serwerem źródłowym. W takiej sytuacji pojawi się błąd 521, mimo że serwer źródłowy może być sprawny.

#3. Błędna konfiguracja serwera źródłowego

Sieć dostarczania treści (CDN) Cloudflare to usługa typu odwrotne proxy. Serwery muszą być właściwie skonfigurowane, aby mogły efektywnie współpracować z CDN. Nieprawidłowa konfiguracja podczas ustawiania CDN może skutkować pojawieniem się błędu 521 u klientów, którzy wysyłają żądania do serwera źródłowego. Dodatkowo, zapory sieciowe ustawione w taki sposób, że odrzucają pakiety zamiast odmawiać połączeń, także mogą powodować ten błąd.

#4. Problemy z certyfikatem SSL Cloudflare

Cloudflare zapewnia szyfrowanie ruchu pomiędzy serwerem a klientem za pomocą protokołu Secure Socket Layer (SSL). Certyfikaty SSL służą do potwierdzania tożsamości stron internetowych oraz do tworzenia szyfrowanego połączenia.

Jeśli wystąpi problem z certyfikatem SSL strony lub z trybem szyfrowania, z którego korzysta Cloudflare, serwer źródłowy odrzuci próbę połączenia, co doprowadzi do błędu 521.

Metody naprawy błędu 521

Istnieje szereg metod, które mogą pomóc w rozwiązaniu problemu błędu 521. Oto niektóre z nich:

# 1. Weryfikacja dostępności serwera źródłowego

Błąd 521 może pojawić się w sytuacji, gdy serwer źródłowy jest niedostępny lub nie działa. Aby upewnić się, czy serwer źródłowy działa, należy otworzyć okno terminala i wpisać polecenie „ping” wraz z nazwą domeny, której status chcemy sprawdzić.

ping newsblog.pl.com

Jeśli serwer działa prawidłowo, powinny zostać odebrane odpowiedzi z serwera. Przykładowy wynik pokazano poniżej:

W tym przypadku serwer źródłowy newsblog.pl jest aktywny. Jednak drugi z testowanych serwerów był wyłączony w czasie testu. Nie odebrano żadnych pakietów, a utrata pakietów wyniosła 100%. Próba otwarcia strony zakończyła się wyświetleniem błędu 502, jak pokazano poniżej:

Naciśnięcie kombinacji klawiszy CTRL+C zakończy działanie polecenia ping.

Innym sposobem sprawdzenia, czy serwer jest dostępny, jest wejście na stronę isitdownrightnow i wpisanie nazwy strony, którą chcemy przetestować. Witryna poinformuje nas o aktualnym statusie serwera. Przykładowy wynik pokazano poniżej:

Jeśli dopiero zaczynamy korzystać z CDN Cloudflare na naszym serwerze, należy upewnić się, że serwer źródłowy jest prawidłowo skonfigurowany do nasłuchiwania na porcie 443 oraz że adresy IP Cloudflare mają pozwolenie na dostęp do tego portu. Należy również sprawdzić konfigurację zapory sieciowej, aby uniknąć problemów z gubieniem pakietów. Nieprawidłowe ustawienia w tym zakresie mogą prowadzić do błędu 521.

#2. Dodanie adresów IP Cloudflare do białej listy

Inną przyczyną błędu 521 może być traktowanie adresów IP Cloudflare jako podejrzane i ich blokowanie z powodu dużej liczby żądań. Aby temu zapobiec, warto skontaktować się z dostawcą hostingu i upewnić się, że nie blokuje ani nie ogranicza żądań, które mogą być przesyłane z adresów IP Cloudflare.

W przypadku posiadania własnego serwera dedykowanego należy sprawdzić, czy zapora ogniowa nie blokuje adresów IP Cloudflare. Dodatkowo zaleca się wyłączenie lub zresetowanie niestandardowych modułów Apache, takich jak mod_antiloris i mod_reqtimeout, które mogą blokować adresy IP łączące się częściej niż 22 razy.

#3. Kontrola certyfikatów SSL i trybu szyfrowania

W zależności od wybranego trybu szyfrowania SSL (elastyczny, pełny, ścisły) Cloudflare będzie inaczej zarządzał certyfikatami SSL przedstawianymi przez serwer źródłowy. Tryby szyfrowania Cloudflare są istotne dla prawidłowego połączenia między usługą odwrotnego proxy Cloudflare a serwerem źródłowym.

Najpopularniejszymi opcjami są tryby pełny i ścisły, które wymagają posiadania certyfikatu SSL. W tych trybach Cloudflare oczekuje ważnych certyfikatów SSL z serwera źródłowego. Błąd 521 może wystąpić, gdy pojawią się problemy z certyfikatem SSL, szczególnie w przypadku używania trybu szyfrowania ścisłego.

Aby rozwiązać ten problem, można zainstalować certyfikaty pochodzenia Cloudflare na serwerze źródłowym lub skorzystać z certyfikatów SSL pochodzących od zaufanego urzędu certyfikacji. Przejście z trybu szyfrowania ścisłego na pełny również może pomóc w wyeliminowaniu błędu 521, spowodowanego problemem z certyfikatem SSL serwera źródłowego.

Podsumowanie

Wykorzystywanie sieci dostarczania treści (CDN), takich jak Cloudflare, stało się popularnym sposobem na udostępnianie treści w internecie. CDN umożliwiają szybsze ładowanie stron internetowych, poprawiają ich działanie, a także zwiększają ich niezawodność i poziom bezpieczeństwa przed atakami.

Podczas korzystania z Cloudflare może pojawić się błąd 521, który często wskazuje na problem z serwerem źródłowym. W takiej sytuacji warto zastosować opisane wyżej metody naprawy. Jeśli żadna z nich nie przyniesie rezultatu, zalecany jest kontakt z obsługą klienta Cloudflare.