Błąd 503 często pojawia się falami. Aby monitorować stronę i otrzymywać informacje o dostępności usługi e-mailem lub innymi kanałami, rozważ skorzystanie z usługi dodatkowej EWM ⧉.
Jeśli na hostingu z WordPressem często występuje błąd 503, zajrzyj także do artykułu Webhosting – WordPress.
W tym artykule przeczytasz:
Błąd 503: Service temporarily unavailable
Błąd 503 rozpoznasz po dużym napisie Service Temporarily Unavailable w górnej części strony. Pod nagłówkiem znajdziesz angielski opis błędu i odnośnik do tego artykułu.

Z Błędem 503 Service Temporarily Unavailable można spotkać się na każdej stronie internetowej, która do działania wykorzystuje PHP lub podobne technologie. Serwer pracuje na pełnych obrotach, a mimo to nie reaguje na nowe żądania. Przyczyną problemów bywa osiągnięcie limitów niektórych parametrów webhostingu.
Rozwiązanie Błędu 503
Każdy Webhosting NoLimit ⧉ ma na naszym serwerze zarezerwowanych do 25 procesów PHP (7 dla LowCost ⧉, 30 dla Extra ⧉), które mogą działać jednocześnie. Oznacza to, że w danej chwili procesor może przetwarzać co najwyżej tyle żądań PHP. Żądania, których procesor nie nadąża obsłużyć ze względu na czasochłonność, trafiają do kolejki i czekają na swoją kolej. Jeśli nie doczekają się wolnego procesu PHP w określonym czasie (tzw. timeout), zwracają Błąd 503.
W normalnych okolicznościach 25 procesów PHP wystarcza – jeśli strony są prawidłowo zoptymalizowane, ten problem nie wystąpi.
Błąd 503 najczęściej powodują:
- trwający atak na serwer www,
- zła optymalizacja strony lub bazy danych,
- niewystarczająca wydajność usługi,
- zawieszony proces PHP.
Atak na serwer WWW
Częstą przyczyną Błędu 503 są ataki lub inne formy zalewania Twojej strony żądaniami, które wyczerpują procesy i blokują prawdziwym użytkownikom dostęp do strony. Błąd w takiej sytuacji zwykle pojawia się falami i trwa od kilku do kilkudziesięciu minut.
Ten problem możesz wychwycić, włączając logowanie według instrukcji Webhosting – Logowanie, i to zarówno Accesslog, jak i Errorlog.
- W Access log znajdziesz wykaz odwiedzin Twojej strony, wraz z konkretnymi adresami. Bezsensowne adresy lub parametry (w adresie po znaku ?) są typowym znakiem ataku.
- W Error log znajdziesz godziny, w których wystąpił Błąd 503. Jeśli te godziny pokrywają się ze szczytami odwiedzin w Accesslogu spowodowanymi podejrzaną aktywnością, błąd został najprawdopodobniej wywołany atakiem.
WEDOS oferuje skuteczną ochronę przed atakami – usługę WEDOS Protection ⧉. Jeśli często obserwujesz Błąd 503 wywołany atakami, rozważ włączenie tej ochrony.
Optymalizacja strony i bazy danych
Jeśli strona nie jest zoptymalizowana, do przeciążenia może często prowadzić nawet zwykły ruch lub nieefektywna praca z zasobami zewnętrznymi bądź bazą danych. Błąd pojawia się falami, albo w szczytach ruchu, albo podczas automatycznej konserwacji; trwa od kilku do kilkudziesięciu minut.
Do częstych przyczyn Błędu 503 i sposobów ich rozwiązania należą:
- Nieprawidłowo zoptymalizowana aplikacja PHP: Aplikacja nie wysyła swoich żądań do procesora efektywnie. Jeśli używasz systemu zarządzania treścią, sprawdź, czy umożliwia on tzw. cache’owanie. Jeśli tak, włącz je. Znacznie skrócisz w ten sposób czas wykonywania skryptu, zmniejszysz liczbę zapytań SQL do bazy danych i przyspieszysz swoje strony. Więcej informacji znajdziesz w artykule Webhosting – Pamięć podręczna i proxy.
- Zbyt częste lub długie procesy w tle: Wszelkiego rodzaju skrypty konserwacyjne, zwłaszcza te, które coś dokądś wysyłają lub skądś pobierają, mogą łatwo na długo zająć dużą liczbę procesów, które wtedy nie są dostępne dla zwykłych użytkowników. Dla regularnych procesów konserwacyjnych zalecamy ustawić na CRON Webhostingu. Tworzenie kopii zapasowych i inne wymagające procesy ogranicz do czasu poza szczytem.
- Duża liczba rekordów w bazie danych: Aplikacja zapisuje w bazie danych wejścia odwiedzających lub inne podobnie obszerne zbiory danych. Zastanów się, które dane naprawdę są potrzebne, i odpowiednio dostosuj aplikację lub hosting.
- Nieodpowiednia konfiguracja bazy danych: Aplikacja ma nieprawidłowo skonfigurowane tabele bazy danych. PHP musi wtedy bardzo długo czekać na wyniki zapytań SQL.
- Aplikacja PHP łączy się z niedostępnym zasobem zewnętrznym: Aplikacja pobiera dane zewnętrzne, ale z serwerem docelowym nie można się połączyć, nie odpowiada lub jest przeciążony. Jeśli często spotykasz się z tym problemem, rozważ zmianę źródła danych zewnętrznych.
- Skrypt wywoływany przez crona działa zbyt długo: Jeśli masz większą liczbę cronów lub crony działają długo, mogą zablokować procesy PHP dostępne dla Twojej strony. Zastanów się, których cronów aplikacja naprawdę potrzebuje, jak często i jak można je zoptymalizować.
- Pobieranie plików za pośrednictwem skryptu PHP: Aplikacja udostępnia pobieranie dużych plików za pomocą skryptu PHP i tym samym przez cały czas pobierania zajmuje proces PHP. Pobieranie plików lepiej więc realizować przez odnośnik lub przekierowanie bezpośrednio na adres URL pliku.
- Duża liczba plików w nieodpowiedniej strukturze katalogów: Aplikacja zawiera w jednym katalogu więcej niż rzędu tysięcy elementów. Rozdziel pliki do odpowiednich katalogów.
Błąd 503 wcale więc nie musi być związany z aktualnym ruchem ani ze zmianami na stronie. Często chodzi o wczytywanie danych z wolnego lub niedostępnego zasobu zewnętrznego albo o działanie crona, który długo coś wczytuje, aktualizuje, wykonuje konserwację i tym podobne. Może się też przypadkowo zebrać większa liczba złożonych żądań, zwykle wyszukiwań w rozległych bazach danych.
Zwiększenie wydajności usługi
Jeśli nie udaje się znaleźć sposobu na optymalizację strony, możesz dostosować wydajność usługi do jej wymagań. Rozważ następujące możliwości:
- Zmiana taryfy Webhostingu: Taryfę Webhostingu możesz zwiększyć z LowCost na NoLimit lub z NoLimit na Extra. Porównanie wydajności taryf znajdziesz pod tym odnośnikiem ⧉. Instrukcję zmiany taryfy znajdziesz w artykule Usługi – Zmiana taryfy lub okresu rozliczeniowego.
- Zmiana usługi: Jeśli wydajność współdzielonego hostingu nie wystarcza Twojej aplikacji, ale nie chcesz rezygnować z zarządzania w administracji klienta, rozważ przeniesienie aplikacji na usługę WMS ⧉.
- Rozdzielenie aliasów i subdomen. Aliases i subdomeny webhostingu współdzielą wydajność usługi. Jeśli ruch na jednym lub kilku aliasach albo subdomenach powoduje Błąd 503, rozważ utworzenie osobnego hostingu dla danej domeny lub subdomeny.
Zawieszony proces PHP
Rzadko Błąd 503 może być także spowodowany zawieszeniem procesu PHP. Jeśli obserwujesz Błąd 503 nieprzerwanie od kilkudziesięciu minut do kilku godzin i nie pomaga nawet wyczyszczenie cache (na przykład skrótem klawiszowym Ctrl+Shift+R), zrestartuj PHP na swoim hostingu.
Podczas zmian wersji PHP mogą wystąpić błędy PHP spowodowane niezgodnością strony z tymczasowo wybraną wersją PHP.
Wykonaj następujące kroki:
- Zaloguj się do administracji klienta ⧉.
- W górnym menu wybierz Hosting services Webhosting.
- Wybierz webhosting, na którym chcesz zrestartować PHP.
- W lewym menu wybierz PHP configuration.
- Zmień wersję PHP na inną, jeśli to możliwe jak najbliższą (np. PHP 7.4 na 7.3 lub 8.0 8.1).
- Kliknij przycisk Edit.
- Poczekaj pół godziny na zmianę wersji PHP. Następnie w ten sam sposób przywróć pierwotną wersję.
Jeśli Błąd 503 utrzymuje się także po takim restarcie, jego przyczyną jest prawdopodobnie coś innego niż zawieszony proces.

Często zadawane pytania
Czy Błąd 503 jest specyficzny dla serwerów WEDOS?
Z błędem 503 można się spotkać na dowolnym serwerze www. Szukając odpowiedniego hostingu dla swojej aplikacji, najpierw zapoznaj się z jej wymaganiami, a następnie dopasuj do nich własne zapytanie. Oprócz dostępnego miejsca na pliki i bazę danych zwróć uwagę na parametry RAM i CPU. Pamiętaj, że wraz z wydajnością rośnie także cena usługi.
Czy 503 oznacza, że blokuje mnie ochrona WEDOS.protection?
Nie. Ochrona wyświetla stronę zastępczą w chwili, gdy strona nie odpowie na czas. Jeśli nie masz pewności, napisz do nas ⧉ datę, godzinę i Req-ID ze strony błędu. Wyszukamy konkretne żądanie i przyczynę jego niepowodzenia.
Czy zwiększenie taryfy rozwiąże błąd?
Zwiększenie taryfy częściowo pomoże, ponieważ wyższa taryfa ma więcej procesów PHP. Nie usunie to jednak przyczyny – jeśli jedno zadanie trwa trzydzieści sekund, zajmuje proces także na wyższej taryfie, a jeśli takich zadań zbierze się więcej, nie zostaną procesy na zwykły ruch. Zalecamy zrobić jedno i drugie.
Jak rozwiązać Błąd 503 w WordPressie?
W przypadku WordPressa często chodzi o zbyt wymagające procesy w tle. Więcej informacji i sposób rozwiązania znajdziesz w artykule Webhosting – WordPress.
Wyłączyłem całą stronę, ale nadal widzę Błąd 503, dlaczego?
Spróbuj wyczyścić cache przeglądarki (na przykład skrótem klawiszowym Ctrl+Shift+R). Jeśli to nie pomoże, spróbuj zrestartować PHP według procedury opisanej w rozdziale Zawieszony proces PHP.