Błąd 503

Błąd 503, znany również jako „Service Unavailable”, może wyświetlić się na stronie w chwili wysycenia zasobów lub w przypadku błędu skryptów. Nagle, zamiast oczekiwanej strony internetowej, pojawia się komunikat o błędzie, który udaremnia dalsze przeglądanie. Jeżeli zastanawiasz się, co właściwie się stało i jak temu zaradzić, w tym poradniku postaramy się rozwiać wszelkie wątpliwości związane z błędem 503. Wyjaśnimy, jakie są najczęstsze przyczyny jego występowania oraz jak sobie z nim poradzić.

Rys. 1. Strona błędu 503

WAŻNE!: Jeżeli ten błąd pojawia się na Twojej stronie bardzo rzadko, i znika wraz z odświeżeniem strony, to zapewne dotyczył jednorazowego błędnego wykonania skryptu i nie jest to groźne.

Błąd ten często pojawia się w momencie, gdy serwer internetowy zostaje przeciążony i nie jest w stanie obsłużyć wszystkich żądań jednocześnie. Przyczyn takiego przeciążenia może być wiele – od nagłego wzrostu ruchu na stronie (który może być generowany przez klientów ją odwiedzających, jak i przez boty internetowe), aż po nieprawidłowo działające skrypty. Jeżeli błąd pojawia się na stronie często lub cały czas, kontynuuj czytanie tego poradnika.

Jak ustalić przyczynę błędu?

1. Warto zacząć od weryfikacji czy na usłudze nie zostało przekroczone dostępne miejsce w GB (gigabajtach) jak i limit ilości plików na usłudze (zazwyczaj 1mln lub 2mln). Jeżeli wszystko jest w porządku, sprawdź także czy nie prowadzimy obecnie prac na serwerach: https://status.cyberfolks.pl

2. Aby zweryfikować czy zasoby twojego hostingu są wysycane/wykorzystywane na 100% (takie jak procesor, pamięć RAM, przepustowość dysku twardego czy limit ilości procesów), w Panelu Administracyjnym przejdź do sekcji “Pozostałe ustawienia” -> “Wykorzystanie zasobów”. Jeżeli wszystko jest w porządku, zobaczysz komunikat “Twoje konto nie miało żadnych problemów z limitami w ciągu ostatnich 24 godzin”.

Jeżeli jednak zasoby rzeczywiście są/były w ciągu ostatnich godzin wysycane, zostanie wyświetlona odpowiednia informacja. Wówczas postępuj według naszego obszernego poradnika, który pomoże Ci zlokalizować przyczynę problemów: https://cyberfolks.pl/pomoc/jak-rozwiazywac-problemy-z-powolnym-dzialaniem-stron-internetowych/

3. Jeżeli nie masz pewności czy wysycane są zasoby, włącz zapisywanie do pliku oraz wyświetlanie błędów PHP (parametry „log_errors” oraz „display_errors„). Dzięki temu serwer będzie zapisywał i wyświetlał na stronie szczegółowe informacje o wszystkich zdarzeniach, które mogą mieć związek z wystąpieniem problemu. Wskazane pogrubioną czcionką opcje włączysz z pomocą tej instrukcji: https://cyberfolks.pl/pomoc/jak-zmienic-parametry-php/

Dla stron opartych o WordPress!: Warto włączyć tryb debugowania zmieniając wartość flagi „wp_debug” z false na true w pliku wp-config.php. Tutaj znajdziesz poradnik dotyczący debugowania WordPress: https://cyberfolks.pl/pomoc/jak-zdebugowac-wordpress/

Dla stron opartych o PrestaShop!: W przypadku nieprawidłowego działania PrestaShop również warto uruchomić debugowanie, które wskaże źródło problemów: https://cyberfolks.pl/pomoc/jak-zdebugowac-prestashop/

Dla stron opartych o Joomla!: Także dla systemu Joomla posiadamy pomocny w jej debugowaniu poradnik: https://cyberfolks.pl/pomoc/jak-zdebugowac-joomla/

4. Po włączeniu powyższych opcji należy dokładnie przeanalizować zapisane logi. Logi każdej strony z obecnego dnia można sprawdzić w Panelu Administracyjnym hostingu:
https://cyberfolks.pl/pomoc/jak-sprawdzic-logi/

Pozwoli to zidentyfikować wąskie gardła i wskazać potencjalne przyczyny przeciążenia serwera. W przypadku błędu 503, szczególną uwagę warto zwrócić na informacje dotyczące:
komunikatów o błędach skryptów (np. komunikat „deprecated” oznaczający próbę wykorzystania funkcji PHP która nie jest dostępna w wykorzystywanej wersji, a była dostępna w jednej ze starszych wersji)
obciążenia serwera (np. błąd „can’t apply process slot” oznaczający wysycanie zasobów)
botów internetowych przeszukujących zawartość strony (np. Google, Facebook, Bing, Yandex, Baidu, DuckDuckGo, Yahoo)

Boty przeszukujące stronę, najczęściej należą do twórców wyszukiwarek internetowych którzy próbują zaindeksować Twoją stronę. Tworząc plik o nazwie „robots.txt” w katalogu głównym wybranej strony, możesz w jego zawartości utworzyć odpowiednie wpisy, które będą prosić wyszukiwarki o nieindeksowanie tej strony, lub ograniczenie swojej aktywności (pozwalając im działać tylko raz na określoną ilość sekund). Jeżeli nie masz pewności jak ograniczyć aktywność robotów, wklej do pliku robots.txt poniższe linijki:

User-agent: facebookexternalhit/1.1
Crawl-delay: 86.4

User-agent: Googlebot
Crawl-delay: 10

User-agent: Bingbot
Crawl-delay: 10

User-agent: Yandex
Crawl-delay: 10

User-agent: Baiduspider
Crawl-delay: 10

User-agent: DuckDuckBot
Crawl-delay: 10

User-agent: Slurp
Crawl-delay: 10

User-agent: *
Crawl-delay: 20
Disallow: /tmp/
Disallow: /private/
Disallow: /admin/


WAŻNE!: Odnotowujemy w ostatnim czasie przypadki botów internetowych ignorujących plik robots.txt. Przykładowym jest ClaudeBot należący do firmy która uczy swoje modele sztucznej inteligencji na podstawie stron dostępnych w internecie. Spotkaliśmy się z przypadkami gdzie aktywność tego typu robotów wysyca zasoby procesora na hostingach naszych klientów. Rozwiązaniem jest blokada takich robotów poprzez plik .htaccess. Aby to zrobić, dodaj w jego zawartości poniższe linijki:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ClaudeBot [NC]
RewriteRule .* - [F,L]


Jeżeli zajdzie potrzeba blokady innego bota, zamień w powyższych linijkach wartość „ClaudeBot” na inną.

5. W pliku .htaccess możesz również blokować konkretne adresy IP, pule adresów IP oraz całe kraje, tak aby z danego Państwa nie można było połączyć się z Twoją stroną. Jest to przydatne gdy w Access Logu widzisz że zdecydowana większość zapytań do strony pochodzi z jednego adresu IP, lub z podejrzanego kraju z którego wcześniej nie odnotowywałeś ruchu. Może to świadczyć o ataku przeprowadzanym na stronę. W zablokowaniu konkretnego adresu IP krok po kroku pomoże Ci ten poradnik: https://cyberfolks.pl/pomoc/jak-blokowac-adresy-ip-za-pomoca-htaccess/

Jeżeli natomiast chcesz zablokować ruch pochodzący przykładowo z Rosji, na początku pliku .htaccess dodaj poniższe linijki:

<IfModule mod_geoip.c>
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry
</IfModule>


Jeżeli zechcesz zablokować ruch z innego kraju, zamiast wartości „RU” w trzeciej linijce, wpisz kod innego kraju, przykładowo dla Afganistanu będzie to „AF”.

6. Aby bronić swojej strony przed botami internetowymi oraz atakami DDoS (są to ataki polegające na zmasowanym wejściu na stronę wielu komputerów-zombie w jednym momencie, aby wysycić zasoby serwera i spowodować niedostępność strony), możesz wykorzystać darmową obronę przed tego typu atakami jaką oferuje firma Cloudflare. Konieczne jest skierowanie wybranej domeny na serwery DNS tej firmy, oraz przeniesienie do jej Panelu wszystkich rekordów DNS. W ich przeniesieniu pomoże Ci ta instrukcja: https://cyberfolks.pl/pomoc/jak-przekierowac-domene-z-cloudflare-com-na-serwer-w-cyberfolks-pl/

WAŻNE!: Pamiętaj że zmiana delegacji domeny to bardzo poważna operacja. Wykonana nieumiejętnie spowoduje problemy z wyświetlaniem strony internetowej oraz z działaniem skrzynek pocztowych w tej domenie. Przed jej wykonaniem upewnij się że wiesz co robisz, a jeżeli nie masz takiej pewności, poproś o pomoc zaufanego webmastera lub programistę.

blad-503
>
Mirosław Sycz