Kamil Rybicki · Opublikowano: · Zaktualizowano:
Błąd 504 Gateway Timeout oznacza, że serwer pośredniczący, na przykład proxy, load balancer albo CDN, wysłał zapytanie do serwera docelowego i nie doczekał się odpowiedzi w wyznaczonym czasie. Niezależnie od tego, czy zobaczysz go jako 504 error, error 504, http error 504 czy po prostu 504 http, chodzi o dokładnie ten sam kod stanu protokołu HTTP. Typowy limit oczekiwania to 60 sekund po stronie serwera WWW i od 60 do 100 sekund po stronie CDN, po tym czasie połączenie zostaje zerwane, a użytkownik widzi komunikat błędu zamiast strony.
Co oznacza błąd 504 i skąd się bierze
Za błędem 504 stoi zawsze ten sam schemat: między Twoją przeglądarką a serwerem, na którym stoi strona, znajduje się pośrednik, czyli serwer proxy, load balancer albo CDN. Pośrednik wysyła zapytanie dalej, do serwera źródłowego, i czeka na odpowiedź przez określony czas. Gdy ten czas mija, a odpowiedzi nadal nie ma, pośrednik przerywa oczekiwanie i zwraca użytkownikowi kod 504, niezależnie od tego, czy serwer źródłowy pracuje wolno, zawiesił się, czy w ogóle nie odebrał połączenia.
| Przyczyna | Co się dzieje na serwerze | Jak ją rozpoznać |
|---|---|---|
| Przeciążenie serwera źródłowego | Zbyt wiele równoległych żądań przekracza dostępne zasoby CPU lub RAM | Wysokie zużycie zasobów w panelu hostingu, błąd nasila się w godzinach szczytu |
| Zbyt wolne zapytania do bazy danych | Pojedyncze zapytanie SQL blokuje kolejkę i wydłuża czas odpowiedzi ponad limit | W logach lub w phpMyAdmin zapytanie wykonuje się kilka do kilkunastu sekund |
| Przeciążenie lub awaria CDN albo proxy | Pośrednik nie otrzymuje odpowiedzi z serwera głównego w wyznaczonym czasie | Błąd znika po chwilowym wyłączeniu CDN lub trybu proxy w panelu dostawcy |
| Błędna konfiguracja lub propagacja DNS | Domena wskazuje na nieprawidłowy albo nieaktualny adres IP | Błąd znika po zmianie DNS w systemie na 8.8.8.8 |
| Firewall blokujący komunikację | Zapora sieciowa odrzuca połączenie między serwerami, zanim padnie odpowiedź | Błąd pojawia się tylko z niektórych sieci lub adresów IP |
Przeciążenie serwera źródłowego to najczęstszy scenariusz, zwłaszcza na hostingu współdzielonym, gdzie zasoby CPU i RAM dzieli wielu klientów naraz. Nieoptymalne zapytania do bazy danych, na przykład SELECT bez indeksu na dużej tabeli, potrafią same w sobie zająć serwerowi kilkanaście sekund i zablokować kolejkę innym żądaniom. Za problemami z CDN lub proxy stoi zwykle chwilowa awaria dostawcy albo błędna konfiguracja reguł przekierowań, a błędy DNS pojawiają się najczęściej tuż po zmianie serwera albo transferze domeny, zanim propagacja się zakończy. Firewall blokujący komunikację to rzadszy przypadek, ale zdarza się po wdrożeniu nowych reguł bezpieczeństwa albo przy migracji na inny adres IP.
Z perspektywy właściciela strony przyczyna ma mniejsze znaczenie niż czas trwania awarii. Kilka minut błędu 504 w trakcie kampanii reklamowej albo premiery nowego produktu oznacza realny koszt: część odwiedzających nie wróci, żeby spróbować ponownie, a wydany budżet reklamowy trafia na stronę, której nie da się otworzyć.
Sprawdź, czy problem leży po Twojej stronie, zanim zaczniesz naprawiać
Zanim zaczniesz cokolwiek zmieniać, sprawdź, czy błąd 504 dotyczy tylko Ciebie, czy wszystkich odwiedzających. To rozstrzyga, gdzie szukać rozwiązania: po stronie Twojego serwera czy po stronie sieci, z której akurat korzystasz.
Najszybciej sprawdzisz to zewnętrznym narzędziem typu Down for Everyone or Just Me albo Pingdom Website Status. Jeśli strona nie działa dla nikogo, problem leży po stronie serwera lub CDN. Jeśli działa dla innych, a Ty nadal widzisz błąd, sprawdź DNS w swojej sieci, na przykład zmieniając go tymczasowo na serwery Google, czyli 8.8.8.8 i 8.8.4.4.
Drugim krokiem jest konsola deweloperska w przeglądarce. Po naciśnięciu klawisza F12 i przejściu do zakładki Sieć zobaczysz dokładnie, który zasób, skrypt, zapytanie API albo żądanie do bazy, zwraca kod 504, zamiast zgadywać na podstawie samego komunikatu.
Ten sam test, w uproszczonej formie, wykonują też roboty wyszukiwarek i systemy zasilające odpowiedzi generowane przez modele językowe. Jeśli serwer zwróci im błąd 504 w momencie odwiedzin, nie zobaczą treści strony, tak samo jak nie zobaczy jej użytkownik. Wyszukiwarka Google w coraz szerszym zakresie odpowiada na zapytania bezpośrednio w wynikach, korzystając z tego samego indeksu i tych samych mechanizmów crawlowania co klasyczne wyszukiwanie (dokumentacja Google o funkcjach AI w wyszukiwarce). Powtarzające się błędy 504 utrudniają więc zbieranie danych potrzebnych do klasycznego rankingu i do generowanych odpowiedzi.
Jak naprawić błąd 504 krok po kroku
Jeśli błąd 504 dotyczy Twojego serwera, kolejność działań wygląda tak samo niezależnie od tego, czy prowadzisz sklep, blog firmowy czy stronę wizytówkową: sprawdzasz zasoby, wyłączasz podejrzane rozszerzenia, testujesz DNS i dopiero na końcu wydłużasz limit czasu oczekiwania.
Sprawdź zużycie zasobów i logi serwera
Gdy masz dostęp do panelu serwera, na przykład cPanel albo Plesk, sprawdź zużycie CPU i RAM, logi błędów oraz czas odpowiedzi na żądania. W logach najczęściej znajdziesz bezpośrednią wskazówkę, co konkretnie przekroczyło limit czasu. Na serwerach VPS i dedykowanych to samo pokażą polecenia top, htop albo vmstat w konsoli SSH, w czasie rzeczywistym.
Wyłącz podejrzane wtyczki i rozszerzenia
Na stronach opartych na CMS, takich jak WordPress, Joomla czy Drupal, błąd 504 często wynika z jednej wadliwej wtyczki albo z rozszerzenia, które właśnie się zaktualizowało. Wyłącz tymczasowo ostatnio dodane lub zaktualizowane wtyczki i sprawdź, czy błąd znika. Jeśli tak, masz zidentyfikowanego sprawcę i możesz poszukać alternatywy albo zgłosić błąd autorowi wtyczki.
Zmień DNS i sprawdź, czy to rozwiązuje problem
Część przypadków błędu 504 wynika z wolnej albo wadliwej odpowiedzi systemu DNS, przez co domena wskazuje na adres IP z opóźnieniem albo nieprawidłowo. Zmień tymczasowo DNS w systemie na serwery Google, odśwież stronę i sprawdź wynik. Zniknięcie błędu po tej zmianie wskazuje na konfigurację Twojego dostawcy internetu albo niedokończoną propagację DNS po zmianie serwera.
Wydłuż limit czasu oczekiwania (timeout)
Gdy masz wpływ na konfigurację serwera, możesz ręcznie zwiększyć limit czasu, przez jaki serwer czeka na odpowiedź innego serwera. Poniższa tabela pokazuje domyślne wartości dla najpopularniejszych konfiguracji i bezpieczny zakres, w jakim warto je podnosić.
| Serwer lub usługa | Parametr | Wartość domyślna | Bezpieczny zakres podwyżki |
|---|---|---|---|
| Apache | Timeout w httpd.conf | 60 sekund | do 120 sekund |
| Nginx | proxy_read_timeout, proxy_connect_timeout, proxy_send_timeout | 60 sekund | do 90-120 sekund |
| CDN typu Cloudflare | limit czasu odpowiedzi źródła (edge timeout) | około 100 sekund | zależny od planu dostawcy |
Nie chodzi o to, żeby wydłużać ten limit w nieskończoność. Zbyt długi timeout oznacza, że użytkownik czeka dłużej na informację o błędzie zamiast dostać ją szybko, a serwer dłużej trzyma zajęty proces, co przy dużym ruchu pogłębia przeciążenie zamiast je rozwiązać.
Kontakt z hostingiem, gdy problem wymaga ich interwencji
Jeśli nie masz dostępu do konfiguracji, logów ani bazy danych, zostaje kontakt z obsługą techniczną hostingu. Konkretne pytania działają lepiej niż ogólnikowa informacja, że strona nie działa: czy serwer ma teraz przeciążenie, czy w logach widać timeouty połączenia z bazą danych i czy można zwiększyć limit czasu oczekiwania na odpowiedź. Takie pytania zwykle skracają czas reakcji, bo pokazują konsultantowi, że nie trzeba tłumaczyć podstaw.
Na hostingu współdzielonym błąd bywa też skutkiem przeciążenia wywołanego przez inną stronę na tym samym serwerze, a nie przez Twoją. Gdy błąd powtarza się częściej niż raz w tygodniu mimo poprawnej konfiguracji, tańszy plan hostingowy przestaje się opłacać: koszt przeniesienia na wyższy pakiet albo VPS zwykle jest niższy niż wartość ruchu i sprzedaży traconych przy każdej kolejnej awarii.
Co zrobić, gdy błąd 504 pojawia się tylko czasami
Najtrudniejszy w diagnozie jest błąd 504, który pojawia się od czasu do czasu, a nie za każdym razem. Trzy obszary warto sprawdzić w pierwszej kolejności.
Skoki ruchu na stronie
Błąd bywa efektem wzmożonego ruchu, na przykład po publikacji popularnego wpisu, starcie kampanii reklamowej albo w sezonowym szczycie sprzedaży. Serwer, który radzi sobie przy typowym natężeniu odwiedzin, może nie wytrzymać kilkukrotnego wzrostu w krótkim czasie.
Wtyczki monitorujące i analityczne
Skrypty śledzące zachowanie użytkownika albo integracje z zewnętrznymi API bywają źródłem problemu, mimo że z pozoru nie mają nic wspólnego z wydajnością. Jeśli taki skrypt czeka na odpowiedź wolnego serwisu zewnętrznego, opóźnienie przenosi się na całą stronę.
Sąsiedzi na hostingu współdzielonym
Na popularnych planach hostingowych wiele stron dzieli te same zasoby. Czasem to nie Twoja strona powoduje przeciążenie, tylko inna, działająca na tym samym serwerze, a rozwiązaniem bywa zapytanie o izolację konta albo przeniesienie na VPS.
Błąd, który wraca nieregularnie, kosztuje więcej niż jednorazowa awaria, bo podważa zaufanie do strony u powracających klientów, nawet jeśli statystycznie dotyka niewielkiego odsetka wejść.
Czy błąd 504 oznacza zagrożenie bezpieczeństwa strony
Kod błędu 504 sam w sobie nie oznacza włamania, wycieku danych ani infekcji złośliwym oprogramowaniem. Może jednak być sygnałem dla kogoś z zewnątrz, że serwer łatwo przeciążyć, a to bywa punktem wyjścia do dalszych prób ataku.
Przestarzałe i podatne wtyczki, zwłaszcza w WordPressie, należą do najczęstszych wektorów, którymi ktoś próbuje przeciążyć albo przejąć stronę, a skalę problemu pokazuje sama liczba luk katalogowanych w bazie podatności WordPressa (Patchstack). Sucuri w raportach o zagrożeniach dla stron internetowych regularnie wskazuje nieaktualne oprogramowanie jako jedną z głównych przyczyn infekcji, które później objawiają się spowolnieniem albo błędami serwera (Sucuri, Website Threat Research Report).
Warto ograniczyć dostęp do panelu administracyjnego według adresu IP, wprowadzić limit liczby zapytań z jednego adresu i monitorować obciążenie serwera na bieżąco, zamiast dowiadywać się o problemie od klientów.
Jak zapobiegać błędowi 504 w przyszłości
Raz naprawiony błąd 504 ma spore szanse wrócić, jeśli nic w konfiguracji się nie zmieni. Poniższe działania nie gwarantują, że błąd nigdy więcej się nie pojawi, ale realnie zmniejszają częstotliwość i skalę problemu.
Optymalizacja zapytań do bazy danych
Jeśli strona korzysta z relacyjnej bazy danych, na przykład MySQL albo PostgreSQL, sposób formułowania zapytań ma bezpośrednie przełożenie na to, jak szybko serwer odpowie. Warto sprawdzić w phpMyAdmin lub Adminerze, czy zapytania mają odpowiednie indeksy, czy SELECT nie zwraca zbyt wielu rekordów naraz i czy w kodzie nie ma zapętleń generujących setki połączeń jednocześnie. Zapytanie, które wykonuje się kilkanaście sekund, to gotowy kandydat na przyczynę kolejnego błędu 504.
Cache i CDN
Duża część odwiedzających nie potrzebuje świeżo wygenerowanej wersji strony przy każdym wejściu. Cache pozwala na serwowanie całych stron, wyników zapytań do bazy i elementów interfejsu z pamięci podręcznej zamiast generować je od nowa, a CDN rozprowadza ten sam ruch po wielu serwerach, więc pojedyncze centrum danych nie musi obsłużyć całości samodzielnie. Serwer, który odpowiada szybciej, rzadziej sięga po limit timeout, a to przekłada się też na wynik Core Web Vitals, czyli wskaźników, którymi Google ocenia jakość techniczną strony (Core Web Vitals, web.dev).
Monitoring dostępności
Sama awaria bywa krótka, ale nawet kilka sekund błędu 504 wystarczy, żeby część odwiedzających zamknęła kartę, zanim strona się załaduje ponownie. Narzędzie monitorujące, sprawdzające dostępność co minutę albo co pięć minut i wysyłające powiadomienie o błędzie HTTP, pozwala zareagować, zanim problem zauważą klienci, a nie po fakcie z ich telefonu.
Aktualizacje CMS, wtyczek i PHP
Nieaktualna wersja PHP potrafi realnie pogorszyć wydajność strony, a stara wersja bazy danych bywa niezgodna z nowoczesnymi zapytaniami. Wtyczki z lukami bezpieczeństwa to dodatkowe ryzyko, bo mogą zostać wykorzystane do wygenerowania sztucznego obciążenia serwera. Aktualizacje nie muszą być codzienne, ale warto robić je przynajmniej raz w miesiącu i zawsze przed większą kampanią albo publikacją ważnej treści.
Kopie zapasowe
Backup nie zapobiega błędowi 504, ale skraca czas, w którym strona jest niedostępna, jeśli serwer padnie całkowicie. Kopia powinna być wykonywana automatycznie, przechowywana poza serwerem głównym, na przykład w chmurze, i regularnie testowana pod kątem tego, czy rzeczywiście da się z niej odtworzyć stronę.
Koszt wdrożenia tych działań jest zwykle jednorazowy albo ogranicza się do niewielkiego miesięcznego abonamentu za monitoring czy CDN. Zestawiony z kosztem utraconej sprzedaży podczas awarii w szczycie ruchu, wychodzi zwykle znacznie niżej, zwłaszcza gdy błąd bez zapobiegania wraca cyklicznie.
Najczęściej zadawane pytania o błąd 504
Co oznacza błąd 504 gateway time-out?
Błąd 504 gateway time-out oznacza, że serwer pośredniczący, na przykład proxy, load balancer albo CDN, nie otrzymał odpowiedzi od serwera źródłowego w wyznaczonym limicie czasu. Zwykle ten limit wynosi około 60 sekund po stronie serwera WWW, a więcej po stronie niektórych CDN-ów. To kod stanu HTTP, a nie informacja o tym, co konkretnie zawiodło, dlatego dalszą diagnozę trzeba przeprowadzić osobno.
Jak naprawić błąd 504?
Zacznij od sprawdzenia zużycia zasobów serwera i logów błędów, następnie wyłącz tymczasowo ostatnio dodane wtyczki oraz przetestuj DNS na serwerach Google. Jeśli masz dostęp do konfiguracji, możesz też ostrożnie zwiększyć limit czasu oczekiwania w Apache albo Nginx. Gdy żaden z tych kroków nie pomoże, pozostaje kontakt z hostingiem z konkretnymi pytaniami o obciążenie serwera i timeouty w logach.
Dlaczego błąd 504 pojawia się tylko czasami?
Najczęściej dlatego, że problem ujawnia się dopiero przy wzmożonym ruchu, na przykład po publikacji popularnej treści albo w trakcie kampanii reklamowej. Innym powodem bywają skrypty analityczne czekające na wolną odpowiedź zewnętrznego serwisu albo przeciążenie wywołane przez inną stronę na tym samym hostingu współdzielonym.
Czy błąd 504 oznacza zagrożenie bezpieczeństwa strony?
Sam błąd nie świadczy o włamaniu ani wycieku danych. Częste występowanie bywa jednak sygnałem, że serwer łatwo przeciążyć, co może zainteresować kogoś testującego stronę pod kątem ataku, zwłaszcza gdy działa na niej nieaktualna wtyczka ze znaną podatnością.
Czym różni się błąd 504 od błędów 502 i 503?
Błąd 502 Bad Gateway oznacza, że serwer pośredniczący dostał od serwera źródłowego odpowiedź, ale nieprawidłową albo niekompletną. Błąd 503 Service Unavailable pojawia się, gdy serwer świadomie odrzuca żądanie, na przykład podczas planowanej konserwacji. Błąd 504 różni się od obu tym, że serwer źródłowy nie odpowiedział wcale w wyznaczonym czasie, więc pośrednik przerwał oczekiwanie samodzielnie.



