15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
28.10.2024

Błąd 504 Gateway Timeout: Co to jest i jak go naprawić

Błąd 504 Gateway Timeout to kod statusu HTTP, który występuje, gdy jeden serwer nie otrzymuje odpowiedzi w odpowiednim czasie od innego serwera podczas przetwarzania żądania. W praktyce oznacza to, że serwer nadrzędny zbyt długo odpowiada, przez co brama lub proxy rezygnuje i zwraca błąd do użytkownika końcowego.

Ten kompleksowy przewodnik wyjaśnia dokładnie, czym jest błąd 504 Gateway Timeout, co go powoduje i — co najważniejsze — jak go naprawić, niezależnie od tego, czy jesteś zwykłym użytkownikiem, czy administratorem serwera odpowiedzialnym za utrzymanie witryny online.

Czym jest błąd 504 Gateway Timeout?

Gdy serwer działa jako brama lub odwrotny serwer proxy — przekazując żądania do serwera nadrzędnego — oczekuje odpowiedzi w określonym oknie czasowym. Jeśli serwer nadrzędny nie odpowie w czasie, brama zwraca klientowi kod statusu 504.

Różni się to od błędu 502 Bad Gateway (który wskazuje na nieprawidłową odpowiedź) lub 503 Service Unavailable (który sygnalizuje tymczasową niedostępność serwera). Błąd 504 oznacza konkretnie, że brama *przekroczyła limit czasu* oczekiwania na prawidłową odpowiedź.

Typowe warianty komunikatu o błędzie

W zależności od oprogramowania serwera, przeglądarki lub używanej sieci CDN błąd może być wyświetlany jako:

  • 504 Gateway Timeout
  • HTTP Error 504
  • Gateway Timeout Error
  • Error 504: Gateway Timeout
  • 504 Gateway Time-out *(typowe dla Nginx)*
  • A 504 error occurred *(typowe dla środowisk Cloudflare)*

Niezależnie od sformułowania, wszystkie te komunikaty wskazują na ten sam podstawowy problem: przekroczenie limitu czasu w komunikacji między serwerami.

Typowe przyczyny błędu 504 Gateway Timeout

Błąd 504 jest niemal zawsze problemem po stronie serwera, co oznacza, że pochodzi z infrastruktury, a nie z przeglądarki lub urządzenia użytkownika. Zrozumienie przyczyny źródłowej jest niezbędne do zastosowania właściwego rozwiązania.

1. Przeciążenie serwera

Gdy serwer jest przeciążony nagłym skokiem ruchu lub nadmierną liczbą równoczesnych żądań, może nie być w stanie przetworzyć ich i odpowiedzieć w skonfigurowanym oknie czasowym. Jest to jedna z najczęstszych przyczyn błędów 504 na stronach o dużym ruchu.

Objawy do sprawdzenia: Wysokie użycie CPU, wyczerpanie pamięci, długie kolejki żądań w logach serwera.

2. Problemy z łącznością sieciową między serwerami

Problem może nie dotyczyć żadnego z serwerów z osobna, lecz ścieżki sieciowej między nimi. Utrata pakietów, awarie routingu lub skoki opóźnień między bramą a serwerem nadrzędnym mogą wywołać przekroczenie limitu czasu.

Objawy do sprawdzenia: Sporadyczne błędy, błędy korelujące z określonymi regionami geograficznymi lub centrami danych.

3. Problemy z rozwiązywaniem nazw DNS

Jeśli rekordy DNS są błędnie skonfigurowane, nieaktualne lub nie zostały w pełni propagowane po migracji serwera, brama może nie być w stanie rozwiązać adresu serwera nadrzędnego — co skutkuje przekroczeniem limitu czasu jeszcze przed nawiązaniem połączenia.

Objawy do sprawdzenia: Błędy 504 pojawiające się bezpośrednio po transferze domeny lub migracji serwera.

4. Błędnie skonfigurowane lub zbyt restrykcyjne zapory sieciowe

Zbyt agresywne zapory sieciowe mogą po cichu odrzucać pakiety między serwerami, uniemożliwiając dotarcie odpowiedzi serwera nadrzędnego do bramy. Jest to częsty problem w zabezpieczonych środowiskach serwerowych, gdzie reguły zapory nie zostały zaktualizowane w celu uwzględnienia nowych ścieżek komunikacji między serwerami.

Objawy do sprawdzenia: Błędy 504 dotyczące tylko określonych typów żądań lub zakresów IP.

5. Błędna konfiguracja serwera proxy lub CDN

Jeśli Twoja witryna kieruje ruch przez serwer proxy lub sieć dostarczania treści (CDN), taką jak Cloudflare, Sucuri lub Fastly, każda błędna konfiguracja lub opóźnienie na tej warstwie może spowodować błąd 504, zanim żądanie dotrze do serwera źródłowego.

Objawy do sprawdzenia: Błędy 504 znikające po ominięciu CDN.

6. Wolne lub nieodpowiadające aplikacje nadrzędne

Jeśli Twój serwer zależy od zewnętrznego API, bazy danych lub mikroserwisu, który zbyt długo odpowiada, brama przekroczy limit czasu oczekiwania na wynik. Jest to coraz częstszy problem w nowoczesnych architekturach webowych opartych na integracji z zewnętrznymi dostawcami.

Objawy do sprawdzenia: Błędy 504 korelujące z określonymi stronami lub funkcjami korzystającymi z zewnętrznych źródeł danych.

7. Zbyt krótkie ustawienia limitu czasu

Czasami proces nadrzędny działa poprawnie, ale po prostu trwa dłużej niż skonfigurowany limit czasu serwera. Jeśli proxy_read_timeout lub podobne dyrektywy są ustawione zbyt zachowawczo, prawidłowe żądania będą przedwcześnie przerywane.

Jak naprawić błąd 504 Gateway Timeout

Odpowiednie rozwiązanie zależy od tego, czy jesteś użytkownikiem napotykającym błąd, czy administratorem serwera odpowiedzialnym za dotkniętą infrastrukturę.

Dla użytkowników: Szybkie kroki rozwiązywania problemów

Jeśli jesteś zwykłym użytkownikiem widzącym błąd 504, problem prawie na pewno leży po stronie serwera — ale jest kilka rzeczy, które możesz spróbować:

#### 1. Odśwież stronę

Naciśnij F5 lub kliknij przycisk przeładowania w przeglądarce. Jeśli serwer był chwilowo przeciążony, proste odświeżenie może się powieść po zmniejszeniu obciążenia.

#### 2. Twarde odświeżenie

Spróbuj twardego odświeżenia (Ctrl+Shift+R w Windows/Linux, Cmd+Shift+R w macOS), aby ominąć pamięć podręczną przeglądarki i wymusić nowe żądanie do serwera.

#### 3. Wyczyść pamięć podręczną i pliki cookie przeglądarki

Nieaktualne dane w pamięci podręcznej mogą czasami zakłócać komunikację z serwerem. Wyczyść pamięć podręczną i pliki cookie przeglądarki przez Ustawienia → Prywatność i bezpieczeństwo, a następnie spróbuj ponownie.

#### 4. Sprawdź połączenie internetowe

Upewnij się, że Twoje połączenie jest stabilne. Niestabilne połączenie może czasami uniemożliwiać prawidłową komunikację z serwerem, potęgując istniejący problem z przekroczeniem limitu czasu.

#### 5. Wypróbuj inną sieć lub urządzenie

Przełącz się na dane mobilne lub inną sieć Wi-Fi. Jeśli błąd zniknie, problem może być związany z Twoim dostawcą usług internetowych lub lokalną konfiguracją sieci, a nie z samym serwerem.

#### 6. Poczekaj i spróbuj ponownie

Błędy 504 są często przejściowe. Jeśli serwer jest tymczasowo przeciążony, odczekanie 5–10 minut i ponowna próba jest często najskuteczniejszym działaniem.

Dla administratorów serwerów: Szczegółowe rozwiązania

Jeśli zarządzasz serwerem lub witryną doświadczającą błędów 504, wymagane jest bardziej systematyczne podejście.

#### 1. Sprawdź wykorzystanie zasobów serwera

Zacznij od sprawdzenia bieżącego zużycia zasobów serwera. Wysokie użycie CPU, wyczerpanie pamięci lub zapełniony dysk mogą uniemożliwić serwerowi przetwarzanie żądań w czasie.

# Check CPU and memory usage
top
htop

# Check disk usage
df -h

# Review recent system logs
tail -f /var/log/syslog
journalctl -xe

Rozwiązanie: Jeśli Twój serwer jest stale mocno obciążony, rozważ przejście na wydajniejszy plan. Hosting VPS od AlexHost zapewnia skalowalne zasoby, które można dostosować w miarę wzrostu ruchu, natomiast Serwery dedykowane oferują maksymalną wydajność dla środowisk o wysokich wymaganiach.

#### 2. Uruchom ponownie serwer WWW i usługi aplikacji

Kontrolowany restart procesu serwera WWW może usunąć zablokowane procesy robocze, zwolnić pamięć i rozwiązać przejściowe problemy.

# Restart Nginx
sudo systemctl restart nginx

# Restart Apache
sudo systemctl restart apache2

# Restart PHP-FPM (if applicable)
sudo systemctl restart php8.1-fpm

Ważne: Zawsze sprawdzaj logi przed restartem i po nim, aby potwierdzić, czy restart rozwiązał problem.

#### 3. Zwiększ limity czasu serwera

Jeśli prawidłowe żądania są przerywane, ponieważ trwają dłużej niż domyślny limit czasu, zwiększ odpowiednie dyrektywy limitu czasu w konfiguracji serwera.

Dla Nginx (/etc/nginx/nginx.conf lub blok serwera Twojej witryny):

proxy_connect_timeout   300;
proxy_send_timeout      300;
proxy_read_timeout      300;
send_timeout            300;

Dla Apache (/etc/apache2/apache2.conf lub .htaccess):

Timeout 300
ProxyTimeout 300

Dla PHP-FPM (/etc/php/8.1/fpm/pool.d/www.conf):

request_terminate_timeout = 300

Po wprowadzeniu zmian zawsze przeładuj lub uruchom ponownie usługę:

sudo nginx -t && sudo systemctl reload nginx
# or
sudo apachectl configtest && sudo systemctl reload apache2

#### 4. Zbadaj i rozwiąż problemy z DNS

Jeśli błąd 504 pojawił się po migracji serwera, transferze domeny lub zmianie rekordów DNS, propagacja DNS może być niekompletna lub rekordy mogą wskazywać na niewłaściwy serwer.

Kroki diagnostyczne:

# Check current DNS resolution
dig yourdomain.com
nslookup yourdomain.com

# Check from a specific DNS server
dig @8.8.8.8 yourdomain.com

Użyj narzędzia online, takiego jak DNS Checker, aby sprawdzić globalny status propagacji.

Rozwiązanie: Upewnij się, że rekordy A i CNAME wskazują na właściwy adres IP. Jeśli niedawno zarejestrowałeś lub przeniosłeś domenę, poczekaj do 48 godzin na pełną propagację. Usługa Rejestracji domen AlexHost zawiera narzędzia do zarządzania DNS, które pomagają utrzymać rekordy dokładne i aktualne.

#### 5. Przejrzyj reguły zapory sieciowej i ustawienia bezpieczeństwa

Zapora sieciowa blokująca komunikację między serwerami jest częstą, ale często pomijaną przyczyną błędów 504. Sprawdź logi zapory pod kątem odrzuconych lub zablokowanych połączeń.

# Check UFW logs (Ubuntu/Debian)
sudo ufw status verbose
sudo tail -f /var/log/ufw.log

# Check iptables rules
sudo iptables -L -n -v

# Check firewalld (CentOS/RHEL)
sudo firewall-cmd --list-all

Rozwiązanie: Zidentyfikuj reguły, które mogą blokować ruch między bramą a serwerami nadrzędnymi, i zaktualizuj je, aby umożliwić wymaganą komunikację. Uważaj, aby nie otwierać portów bez potrzeby — stosuj zasadę najmniejszych uprawnień.

#### 6. Debuguj konfigurację proxy i CDN

Jeśli Twoja witryna używa odwrotnego serwera proxy (np. Nginx działającego jako proxy dla aplikacji Node.js lub Python) lub CDN, sprawdź, czy konfiguracja proxy jest prawidłowa i czy serwer źródłowy jest osiągalny.

Dla odwrotnego serwera proxy Nginx sprawdź blok upstream:

upstream backend {
    server 127.0.0.1:3000;
    keepalive 32;
}

server {
    location / {
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_read_timeout 300;
    }
}

W przypadku błędów 504 związanych z CDN:

  • Tymczasowo omiń CDN, uzyskując dostęp do witryny bezpośrednio przez jej adres IP, aby ustalić, czy źródłem problemu jest CDN, czy serwer źródłowy.
  • Przejrzyj ustawienia limitu czasu źródła w CDN — wiele sieci CDN ma własne konfigurowalne wartości limitu czasu, które muszą być zgodne z ustawieniami serwera.
  • Sprawdź stronę statusu CDN pod kątem trwających incydentów.

#### 7. Optymalizuj wolne zapytania do bazy danych i kod aplikacji

Jeśli błąd 504 jest spowodowany przez wolną aplikację nadrzędną — np. zapytanie do bazy danych trwające zbyt długo — rozwiązanie leży w optymalizacji na poziomie aplikacji, a nie w konfiguracji serwera.

Kroki do zbadania:

  • Włącz logowanie wolnych zapytań w MySQL/MariaDB:
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;
  • Przejrzyj narzędzia do monitorowania wydajności aplikacji (APM), takie jak New Relic, Datadog lub open-source’owe alternatywy, jak Netdata.
  • Dodaj indeksy bazy danych do często odpytywanych kolumn.
  • Wdróż buforowanie (Redis, Memcached), aby zmniejszyć liczbę kosztownych zapytań do bazy danych.

#### 8. Proaktywnie monitoruj kondycję serwera

Reaktywne rozwiązywanie problemów jest mniej skuteczne niż proaktywne monitorowanie. Skonfiguruj alerty dla progów CPU, pamięci, I/O dysku i czasu odpowiedzi, aby móc identyfikować i rozwiązywać problemy, zanim spowodują błędy 504 dla Twoich użytkowników.

Jeśli Twoje obecne środowisko hostingowe nie ma zasobów ani elastyczności do wdrożenia tych optymalizacji, być może nadszedł czas na rozważenie aktualizacji. Plany VPS z cPanel od AlexHost oferują intuicyjny interfejs zarządzania wraz z surową wydajnością wirtualnego serwera prywatnego — ułatwiając monitorowanie i zarządzanie serwerem bez głębokiej wiedzy o wierszu poleceń.

504 a inne typowe błędy bramy

Zrozumienie, czym błąd 504 różni się od powiązanych błędów HTTP, pomaga dokładniej diagnozować problemy:

Kod błęduNazwaZnaczenie
502Bad GatewaySerwer nadrzędny zwrócił nieprawidłową odpowiedź
503Service UnavailableSerwer tymczasowo nie może obsługiwać żądań
504Gateway TimeoutBrama przekroczyła limit czasu oczekiwania na serwer nadrzędny
408Request TimeoutKlient zbyt długo wysyłał kompletne żądanie
524A Timeout OccurredSpecyficzny dla Cloudflare; serwer źródłowy przekroczył limit czasu

Zapobieganie błędom 504: Najlepsze praktyki

Zamiast czekać na wystąpienie błędów 504 i reagować na nie, wdróż te najlepsze praktyki, aby zminimalizować prawdopodobieństwo ich wystąpienia:

  • Dopasuj zasoby serwera do potrzeb — upewnij się, że Twój plan hostingowy może obsłużyć oczekiwany ruch, w tym szczytowe obciążenia.
  • Używaj load balancera — rozdzielaj ruch między wiele serwerów, aby zapobiec wąskim gardłom na pojedynczym serwerze.
  • Agresywnie wdrażaj buforowanie — używaj buforowania całych stron, buforowania obiektów i buforowania na brzegu CDN, aby zmniejszyć liczbę żądań docierających do serwera źródłowego.
  • Ustaw realistyczne wartości limitu czasu — konfiguruj limity czasu odzwierciedlające rzeczywisty czas przetwarzania wymagany przez Twoją aplikację, a nie arbitralne wartości domyślne.
  • Monitoruj kondycję DNS — regularnie weryfikuj poprawność rekordów DNS i odpowiedniość wartości TTL.
  • Aktualizuj oprogramowanie — nieaktualne oprogramowanie serwera WWW, wersje PHP lub wtyczki CMS mogą wprowadzać wąskie gardła wydajnościowe przyczyniające się do przekroczeń limitu czasu.
  • Odpowiednio zabezpiecz serwer — dobrze skonfigurowany certyfikat SSL nie tylko chroni użytkowników, ale także zapewnia, że szyfrowane połączenia między serwerami nie wprowadzają nieoczekiwanych opóźnień podczas uzgadniania. Certyfikaty SSL AlexHost są łatwe do wdrożenia i pomagają utrzymać bezpieczną, wydajną komunikację między serwerami.

Podsumowanie

Błąd 504 Gateway Timeout to problem po stronie serwera, który występuje, gdy brama lub proxy nie otrzymuje odpowiedzi w odpowiednim czasie od serwera nadrzędnego. Choć może być frustrujący dla użytkowników, jest niemal zawsze możliwy do zdiagnozowania i naprawienia przy odpowiednim podejściu.

Dla użytkowników najlepszymi natychmiastowymi krokami są odświeżenie strony, wyczyszczenie pamięci podręcznej i odczekanie kilku minut przed ponowną próbą.

Dla administratorów serwerów naprawa wymaga systematycznego dochodzenia: sprawdzenia wykorzystania zasobów serwera, przeglądu konfiguracji limitu czasu, audytu reguł zapory sieciowej, weryfikacji rekordów DNS oraz optymalizacji wolnego kodu aplikacji lub zapytań do bazy danych.

Wybór niezawodnego dostawcy hostingu z solidną infrastrukturą jest najskuteczniejszym sposobem na zmniejszenie częstotliwości błędów 504. Niezależnie od tego, czy potrzebujesz skalowalnego Hostingu VPS, wydajnych Serwerów dedykowanych, czy podstawowego Współdzielonego hostingu WWW, AlexHost zapewnia infrastrukturę, wsparcie i narzędzia, aby Twoja witryna była szybka, stabilna i dostępna przez całą dobę.

15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij