Jak naprawić błąd przekroczenia limitu czasu bramy 504 w witrynie WordPress?

Opublikowany: 2020-10-26

Błąd przekroczenia limitu czasu bramy 504 jest jednym z najczęstszych błędów HTTP 5xx , z jakimi spotykają się właściciele witryn i osoby odwiedzające witrynę. W przypadku wielu blogów WordPress i platform e-commerce wiedza o tym, jak naprawić takie błędy serwera, ma kluczowe znaczenie, aby uniemożliwić ciężko zarobionym użytkownikom odbijanie się na stronach konkurencji.

Ponieważ błąd przekroczenia limitu czasu bramy 504 nie mówi, dlaczego się pojawił, trudno jest określić, co powoduje przekroczenie limitu czasu serwera. Ten artykuł pomoże Ci go szczegółowo zrozumieć, dowiedzieć się, jak zdiagnozować jego przyczynę, a następnie go naprawić.

Po wypróbowaniu wszystkich różnych rozwiązań wymienionych w poście Twoja witryna powinna zacząć działać w mgnieniu oka.

Brzmi interesująco? Zanurzmy się!

Wolisz obejrzeć wersję wideo?

Błąd przekroczenia limitu czasu bramy 504 jest jednym z najczęstszych błędów HTTP 5xx, z jakimi spotykają się właściciele witryn i osoby odwiedzające witrynę. Dowiedz się, jak szybko to naprawić, korzystając z tego przewodnika. Kliknij, aby tweetować

Co to jest błąd przekroczenia limitu czasu bramki 504?

Za każdym razem, gdy odwiedzasz witrynę internetową w swojej przeglądarce, przeglądarka wysyła żądanie do serwera internetowego, na którym znajduje się witryna. Serwer przetwarza żądanie i odpowiada żądanymi zasobami.

Ilustracja działania żądań i odpowiedzi HTTP
Jak działają żądania i odpowiedzi HTTP.

Odpowiedź serwera zawiera jeden z wielu kodów stanu HTTP, które wskazują przeglądarce stan odpowiedzi. Ale nie wszystkie te kody stanu HTTP są błędami. Na przykład kod stanu 200 OK oznacza, że ​​serwer pomyślnie przetworzył żądanie i „Wszystko jest w porządku”.

Klasa 5xx kodów stanu HTTP wskazuje, że coś jest nie tak z serwerem, serwer jest tego świadomy i nie może wykonać żądania klienta. W rezultacie są one również określane jako kody stanu błędu serwera 5xx .

Oficjalnie pięć kodów statusu jest określonych w klasie 5xx (500, 501, 502, 503, 504). Możesz też natknąć się na wiele nieoficjalnych kodów (506, 507, 509, 520 itd.).

Internet Engineering Task Force (IETF) definiuje błąd przekroczenia limitu czasu bramy 504 jako:

Kod stanu 504 (przekroczenie limitu czasu bramy) wskazuje, że serwer, działając jako brama lub serwer proxy, nie otrzymał na czas odpowiedzi z serwera nadrzędnego, do którego musiał uzyskać dostęp, aby zakończyć żądanie.

Aby to jeszcze bardziej uprościć, ten błąd występuje, gdy dwa serwery są zaangażowane w przetwarzanie żądania. Pierwszy serwer (zwykle serwer główny) upłynął limit czasu oczekiwania na odpowiedź z drugiego serwera (serwera nadrzędnego).

Błąd przekroczenia limitu czasu bramy 504 objawia się w różnych formach. Oto kilka sposobów, w jakie zwykle się pojawia:

BŁĄD HTTP 504 w przeglądarce Chrome
„HTTP ERROR 504” w przeglądarce Chrome.

Błąd przekroczenia limitu czasu bramy 504 jest podobny do błędu 502 nieprawidłowej bramy, który wskazuje, że pierwszy serwer otrzymał nieprawidłową odpowiedź od drugiego serwera (serwera nadrzędnego).

Kod stanu 504 GATEWAY TIMEOUT w Chrome DevTools
Kod stanu „504 GATEWAY TIMEOUT” w Chrome DevTools.

Odmiany błędu przekroczenia limitu czasu bramki 504

Przeglądarka wyświetla w sobie każdy błąd przekroczenia limitu czasu bramki 504, tak jak każdy inny błąd. Ponieważ istnieją różne systemy operacyjne, serwery internetowe, przeglądarki i klienty użytkownika, może się wyświetlać na wiele sposobów.

Poniżej znajduje się kilka typowych odmian komunikatów o błędach 504, które możesz napotkać:

  • 504 Przekroczenie limitu czasu bramki
  • 504 Przekroczenie limitu czasu bramki NGINX
  • Limit czasu bramy NGINX 504
  • Błąd przekroczenia limitu czasu bramy
  • Błąd 504
  • Błąd HTTP 504
  • Błąd HTTP 504 — przekroczenie limitu czasu bramy
  • HTTP 504
  • 504 Błąd
  • Limit czasu bramy (504)
  • Ta strona nie działa — odpowiedź domeny trwała zbyt długo
  • 504 Gateway Time-out — serwer nie odpowiedział na czas
  • Żądanie strony zostało anulowane, ponieważ jego ukończenie trwało zbyt długo
  • Odwiedzający witrynę: wystąpił problem z realizacją Twojego żądania, spróbuj ponownie za kilka minut.
  • Właściciele witryny: przekroczono limit czasu bramy. Więcej informacji znajdziesz w swoim dzienniku błędów.
  • Pusty biały ekran

Wszystkie powyższe odpowiedzi na błędy, choć sformułowane inaczej, wskazują na ten sam błąd serwera 504 Gateway Timeout.

Serwery internetowe i witryny internetowe mogą dostosować sposób wyświetlania użytkownikom błędu przekroczenia limitu czasu bramy 504. Niektóre z nich mogą być fajne! To doskonała taktyka na stłumienie rozczarowania gości.

Dostosowana strona błędu HTTP 504 GitHub
Dostosowana strona błędu HTTP 504 w serwisie GitHub.

Wpływ na SEO błędu przekroczenia limitu czasu bramki 504

Wszystkie błędy 5xx uniemożliwiają ładowanie strony internetowej, co ma negatywny wpływ na wrażenia użytkownika. Dlatego wyszukiwarki takie jak Google poważnie traktują te błędy. Jeśli błąd utrzymuje się przez dłuższy czas, może nawet doprowadzić do usunięcia strony z wyników wyszukiwania.

Na przykład, gdy roboty-pająki Google natkną się na błąd 503 Niedostępna usługa, zrozumieją, że jest to problem tymczasowy, ponieważ jest on używany głównie do włączania trybu konserwacji witryny. Dlatego spróbują później ponownie zaindeksować stronę.

Błąd przekroczenia limitu czasu bramy 504 niekoniecznie jest tymczasowy, ponieważ może wynikać z wielu powodów. Jeśli witryna nie działa tylko przez kilka minut, a roboty indeksujące próbują ją indeksować wiele razy w ciągu minuty, spróbują wyświetlić stronę ze swojej pamięci podręcznej. Nawet by tego nie zauważyli.

Ale jeśli Twoja witryna nie działa przez co najmniej 6 godzin, Google uzna błąd 504 za poważny problem dotyczący całej witryny, który należy jak najszybciej naprawić. Może to negatywnie wpłynąć na SEO.

Wyświetlanie błędów indeksowania w Google Search Console
Wyświetlanie błędów indeksowania w Google Search Console

Google Search Console to jedno z najlepszych narzędzi SEO do monitorowania błędów HTTP 5xx Twojej witryny.

Przyczyny błędu przekroczenia limitu czasu bramki 504

Ponieważ błąd 504 jest spowodowany przekroczeniem limitu czasu między serwerami, problem prawdopodobnie nie dotyczy urządzenia klienta ani połączenia internetowego. Dotyczy to również Twojego urządzenia i połączenia.

Błąd przekroczenia limitu czasu bramy 504 wskazuje, że serwer WWW zbyt długo czeka na odpowiedź z innego serwera i „przekroczono limit czasu”. Przyczyn tego limitu czasu może być wiele: drugi serwer nie działa prawidłowo, jest przeciążony lub nie działa.

Drugi serwer nie zawsze musi być zewnętrzny (np. CDN, brama API). Może to być również podmiot podobny do serwera w ramach głównego serwera WWW (np. serwer odwrotnego proxy, serwer bazy danych).

Jak naprawić błąd przekroczenia limitu czasu bramy 504?

Nie znając dokładnych szczegółów dotyczących witryny WordPress, takich jak konfiguracja serwera, plan hostingowy, wtyczki innych firm i przyciągany przez nią ruch, naprawienie błędu przekroczenia limitu czasu bramy 504 może być frustrujące i przytłaczające.

Ponieważ w grę wchodzi wiele zmiennych, polecam zacząć od naprawienia problemów po stronie klienta, które są dość rzadkie, a następnie przejść do rozwiązywania problemów po stronie serwera. Zwykle są winowajcami błędów 504.

Spróbuj ponownie załadować stronę

Jedną z pierwszych rzeczy, które możesz wypróbować w przypadku napotkania błędu przekroczenia limitu czasu bramy 504 jest odczekanie kilku minut i ponowne załadowanie strony.

Możesz nacisnąć skrót klawiaturowy F5 , aby odświeżyć / ponownie załadować stronę w większości przeglądarek. Aby usunąć pamięć podręczną przeglądarki strony przed ponownym załadowaniem, możesz zamiast tego nacisnąć kombinację skrótów CTRL+F5 .

Odświeżanie strony internetowej w przeglądarce Chrome
Odświeżanie strony internetowej w przeglądarce Chrome

W tym czasie możesz również spróbować załadować witrynę w innej przeglądarce, aby wykluczyć to jako problem. Ponieważ większość błędów 504 wynika z chwilowego przeciążenia serwerów, skorzystanie z tego rozwiązania powinno sprawić, że Twoja witryna natychmiast powróci.

Jeśli czekanie i ponowne załadowanie witryny nie rozwiąże problemu z błędem 504, możesz sprawdzić, czy witryna nie działa dla wszystkich, czy tylko dla Ciebie. Dwa przydatne narzędzia online do testowania witryny pod kątem przestojów to niedostępna dla wszystkich czy tylko dla mnie i czy teraz jest niedostępna?

Testowanie Kinsta.com na Down dla każdego lub tylko dla mnie
Testowanie Kinsta.com na Down dla każdego lub tylko dla mnie

Uruchom ponownie urządzenia sieciowe

Czasami problemy z urządzeniami sieciowymi, takimi jak modem lub router, mogą prowadzić do błędu przekroczenia limitu czasu bramy 504. Ponowne uruchomienie tych urządzeń może pomóc w rozwiązaniu problemu.

Chociaż możesz wyłączyć wszystkie te urządzenia sieciowe w dowolnej kolejności, kolejność, w jakiej je ponownie włączasz, jest ważna. Zazwyczaj urządzenia te należy włączać „z zewnątrz”, zgodnie z kolejnością połączenia dostawcy usług internetowych z głównym urządzeniem klienckim.

Sprawdź ustawienia proxy

Serwer proxy znajduje się między Twoim urządzeniem a Internetem. Służy głównie do zwiększania prywatności w Internecie poprzez ukrywanie prywatnych informacji (np. lokalizacji urządzenia) przed witrynami internetowymi i serwerami internetowymi (np. za pomocą VPN).

Chociaż rzadko zdarza się, aby serwery proxy powodowały błąd 504, czasami przyczyną mogą być nieprawidłowe ustawienia serwera proxy. Możesz wyłączyć serwer proxy i spróbować ponownie załadować stronę internetową, aby sprawdzić, czy to naprawi błąd.

Zmiana ustawień „Proxy” w systemie Windows 10
Zmiana ustawień serwera proxy w systemie Windows 10

Większość klientów nie korzysta z usługi proxy, więc możesz pominąć ten krok, jeśli masz pewność, że nie używasz żadnego serwera proxy. Jednak mogłeś to ustawić bez twojej wiedzy. Sugeruję sprawdzenie ustawień proxy urządzenia i przeglądarki, aby wykluczyć tę przyczynę.

Problemy z DNS

Błąd przekroczenia limitu czasu bramy 504 może być również spowodowany problemami z DNS po stronie serwera lub klienta (lub obu).

Najbardziej prawdopodobną przyczyną problemu z DNS po stronie serwera jest FQDN (w pełni kwalifikowana nazwa domeny) nierozpoznawanie prawidłowego adresu IP lub brak odpowiedzi serwera DNS . Zwykle dzieje się tak, gdy właśnie przeprowadziłeś migrację witryny WordPress na nowy serwer lub host. Dlatego ważne jest, aby poczekać na pełne rozpowszechnienie rekordów DNS domeny, co może potrwać do 24 godzin.

Możesz użyć bezpłatnych narzędzi, takich jak whatsmydns.net DNS Checker lub DNSMap, aby sprawdzić, czy Twój DNS rozprzestrzenił się na całym świecie.

Sprawdzanie propagacji DNS dla Twojej domeny na whatsmydns.net
Sprawdzanie propagacji DNS dla Twojej domeny na whatsmydns.net

Aby rozwiązać problemy z DNS po stronie klienta, możesz spróbować opróżnić lokalną pamięć podręczną DNS. To jak czyszczenie pamięci podręcznej przeglądarki, z wyjątkiem tego, że opróżniasz pamięć podręczną DNS z systemu operacyjnego.

Jeśli używasz systemu Windows, możesz opróżnić pamięć podręczną DNS, otwierając wiersz polecenia i wprowadzając następującą dyrektywę:

 ipconfig /flushdns
Opróżnianie pamięci podręcznej DNS za pomocą wiersza polecenia
Opróżnianie pamięci podręcznej DNS za pomocą wiersza polecenia w systemie Windows

Powinieneś zobaczyć "Pomyślnie opróżniono pamięć podręczną DNS resolver". wiadomość, jeśli to zadziałało.

W przypadku najnowszych wersji macOS możesz otworzyć Terminal i uruchomić następujące polecenie:

 sudo killall -HUP mDNSResponder

Po zakończeniu procesu nie zobaczysz żadnego powiadomienia w systemie macOS, ale możesz to zmienić, dołączając polecenie do niestandardowej wiadomości.

 sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully

Jeśli używasz starszych wersji systemu macOS, polecenie, które musisz wprowadzić, zależy od używanej wersji systemu macOS. Aby uzyskać więcej informacji, zapoznaj się z sekcją macOS w szczegółowym samouczku dotyczącym spłukiwania DNS firmy Kinsta.

Jeśli używasz systemu operacyjnego Linux, proces jest dość podobny do systemu macOS, ponieważ nawet Linux używa Terminala jako interfejsu wiersza poleceń. Ponieważ istnieje wiele dystrybucji Linuksa, dokładne polecenie, które musisz uruchomić, może się różnić w zależności od dystrybucji. Możesz sprawdzić przewodnik Kinsta, aby uzyskać więcej informacji.

Na koniec możesz tymczasowo zmienić serwery DNS po stronie klienta. Domyślnie Twój dostawca usług internetowych automatycznie przypisuje Ci serwery DNS. Ale możesz tymczasowo zmienić je na publiczne adresy IP DNS.

Niektóre niezawodne serwery DNS, które możesz wypróbować, to Google Public DNS, Cloudflare 1.1.1.1, Quad9 DNS i Cisco OpenDNS.

Ustawienia niestandardowych serwerów DNS w systemie Windows 10
Ustawienia niestandardowych serwerów DNS w systemie Windows 10

Tymczasowo wyłącz CDN witryny

Czasami problem może dotyczyć również sieci dostarczania treści (CDN). Jeśli serwer pochodzenia witryny jest nieosiągalny, większość sieci CDN będzie próbowała obsłużyć całą stronę internetową ze swojej pamięci podręcznej.

Jednak większość sieci CDN domyślnie nie włącza tej funkcji, ponieważ buforowanie zasobów dynamicznych w większości witryn jest skomplikowane (np. w panelu administracyjnym WordPress).

Ustawianie reguły strony „Cache Everything” w Cloudflare
Ustawianie reguły strony „Cachuj wszystko” w Cloudflare

Prostym sposobem rozwiązania tego problemu jest tymczasowe wyłączenie sieci CDN. Na przykład, jeśli używasz darmowej wtyczki CDN Enabler WordPress do łączenia zasobów witryny z adresami URL CDN, możesz dezaktywować wtyczkę i przetestować ponowne ładowanie witryny.

To samo dotyczy korzystania z dowolnej innej wtyczki, której możesz użyć do połączenia z CDN (np. WP Rocket, Breeze, W3 Total Cache).

Jeśli nie możesz uzyskać dostępu do panelu administracyjnego swojej witryny, możesz wyłączyć wtyczkę przez SFTP, zmieniając nazwę folderu wtyczki.

Wyłącz wszystkie wtyczki przez SFTP, zmieniając nazwę folderu wtyczek
Wyłącz wszystkie wtyczki przez SFTP, zmieniając nazwę folderu wtyczek

Sieci CDN, takie jak Cloudflare lub Sucuri, które zapewniają pełne usługi proxy, mają dodatkowe zapory między serwerami brzegowymi a serwerem pochodzenia. W związku z tym możesz częściej napotykać błędy HTTP 5xx podczas ich używania. Większość z nich buforuje błędy 5xx zwrócone przez serwer pochodzenia, więc łatwo jest je rozwiązać.

Darmowy plan Cloudflare może powodować błąd 5xx. Niestety, ponieważ jest to pełna usługa proxy, nie ma szybkiego sposobu na jej wyłączenie. Ale zanim obwinisz za to Cloudflare, wiedz, że Cloudflare pokazuje dwie odmiany błędu przekroczenia limitu czasu bramy 504.

Limit czasu bramy 504 w Cloudflare (wariacja 1)

Cloudflare wyświetli niestandardowy ekran błędu przekroczenia limitu czasu bramy 504, gdy serwer pochodzenia Twojej witryny odpowie standardową odpowiedzią HTTP 504.

Niestandardowy ekran błędu 504 Cloudflare
Niestandardowy ekran błędu 504 Cloudflare

Tutaj problem dotyczy twojego serwera internetowego, a nie Cloudflare. Możesz spróbować naprawić to za pomocą innych rozwiązań wymienionych poniżej lub skontaktować się z obsługą dostawcy usług hostingowych w celu uzyskania pomocy technicznej.

Limit czasu bramy 504 w Cloudflare (wariacja 2)

Jeśli Cloudflare spowoduje błąd przekroczenia limitu czasu bramy 504, na ekranie błędu pojawi się napis „cloudflare”, który jest obecnie standardową nazwą serwera dla wszystkich zasobów Cloudflare. Zazwyczaj ekran błędu pojawi się jak poniżej:

Błąd przekroczenia limitu czasu bramy 504 spowodowany przez Cloudflare
Ekran błędu dla limitu czasu bramy 504 spowodowanego przez Cloudflare

Ponieważ sam Cloudflare nie odpowiada, nie zobaczysz tutaj żadnego ekranu błędu marki Cloudflare.

Najprawdopodobniej Cloudflare jest już świadomy problemu i już pracuje nad poprawką. Możesz to potwierdzić, sprawdzając stronę internetową Cloudflare System Status. Alternatywnie możesz skontaktować się z obsługą Cloudflare, aby uzyskać szybszą rozdzielczość.

Sprawdź status systemu Cloudflare na cloudflarestatus.com
Sprawdź status systemu Cloudflare na cloudflarestatus.com

Przekroczenie limitu czasu bramy 504 w Cloudflare ze względu na duże przesyłanie

Rozmiar przesyłanych plików do Twojej witryny może być również przyczyną przekroczenia limitu czasu serwera. Cloudflare ogranicza rozmiar przesyłanego pliku (na żądanie HTTP POST) do zaledwie 100 MB w planach Free i Pro.

Limity „Maksymalnego rozmiaru przesyłania” Cloudflare dla różnych planów
Limity „Maksymalnego rozmiaru przesyłania” Cloudflare dla różnych planów

Problem może dotyczyć hosta lub Cloudflare. Możesz znaleźć dokładną przyczynę, omijając Cloudflare za pomocą pliku hostów DNS i ponownie próbując przesłać.

Jeśli używasz Cloudflare z WordPress, polecam skorzystać z ich bezpłatnej wtyczki i wykluczyć krytyczne adresy URL z pamięci podręcznej (takich jak pulpit nawigacyjny WordPress). Możesz zapoznać się ze szczegółowym postem Kinsta, jak skonfigurować ustawienia Cloudflare dla WordPress.

Sugerowana lektura: Jak skonfigurować Cloudflare APO dla WordPress.

Problemy z serwerem (skontaktuj się z hostem)

Problemy z serwerem są jedną z najczęstszych przyczyn wystąpienia błędu przekroczenia limitu czasu bramy 504. Ponieważ większość witryn WordPress jest hostowanych na serwerach Nginx lub Apache, Nginx lub Apache czeka na odpowiedź i limit czasu.

Wielu klientów przychodzi do Kinsta z dokładnie tym problemem, z którym borykają się u innych hostów WordPress. Rozmowa przebiega mniej więcej tak:

Miesięcznie odwiedza nas około 100 tys. z ponad 200 tys. wyświetleń. Obecnie hostujemy z ____ i stale napotykamy błędy 504 z powodu przeciążenia serwera. Nie podoba mi się sposób, w jaki ____ poradził sobie z tym problemem, a także poinformowano nas, że wkrótce będziemy musieli przejść do ich dedykowanych planów, co moim zdaniem nie jest konieczne.

Witryny o dużym natężeniu ruchu i witryny e-commerce są bardziej podatne na błędy 504 z powodu przeciążenia serwera, ponieważ generują wiele żądań, których nie można buforować. Jednak ten problem można przyciąć w dowolnej witrynie, w tym w prostych blogach. Wielu hostów poprosi Cię o uaktualnienie do planu wyższego poziomu, aby rozwiązać problem, co w większości przypadków jest niepotrzebne.

Kinsta używa hostów zarządzanych LXD i zorganizowanych kontenerów oprogramowania LXC dla każdej witryny. W ten sposób każda witryna WordPress znajduje się we własnym izolowanym kontenerze z dostępem do całego oprogramowania wymaganego do jej uruchomienia (Linux, Nginx, PHP, MySQL). Zasoby są w 100% prywatne i nie są udostępniane żadnej innej witrynie, nawet Twoim witrynom.

Większość hostów WordPress oferujących wspólne plany hostingowe nie ma tej możliwości. W związku z tym witryna o dużym ruchu hostowana na tym samym serwerze co Twoja może spowodować, że Twoja witryna również zgłosi błąd 504.

Oprócz odizolowania każdej witryny w swoim kontenerze, Kinsta zaprojektowała również swoją infrastrukturę, aby z łatwością obsługiwać tysiące jednoczesnych połączeń. Kinsta obsługuje nawet bazy danych MySQL na hoście lokalnym, a nie na serwerze zdalnym. Oznacza to brak opóźnień między maszynami, co skutkuje szybszymi zapytaniami i mniejszymi szansami na przekroczenie limitu czasu.

Wielu klientów, którzy migrują do Kinsta, odnotowuje ogromne skrócenie ogólnego czasu ładowania.

Wzrost wydajności o 212,5% po przejściu na C2.
Wzrost wydajności o 212,5% po przejściu na C2.

Przeciążony serwer nie jest jedyną przyczyną przekroczenia limitu czasu serwera. Przyczyn błędu 504 może być wiele:

Powolna infrastruktura serwerowa

Serwer, którego używasz do hostowania witryny WordPress, może nie mieć wystarczających zasobów, aby obsłużyć obciążenie. To jak granie w nowoczesną, intensywnie graficzną grę wideo na dziesięcioletnim komputerze PC.

Serwer po prostu rozłącza się, próbując obsłużyć witrynę. Jedynym rozwiązaniem tego problemu jest aktualizacja do serwera z lepszą infrastrukturą. Z tego powodu nawet najbardziej podstawowy plan hostingowy WordPress firmy Kinsta poradzi sobie ze statyczną witryną o średnim ruchu.

Potrzebuje więcej pracowników PHP

Pracownicy PHP są wykorzystywani do wykonywania kodu witryny WordPress. Witryna e-commerce, która odwiedza 50 000 miesięcznie, potrzebuje znacznie więcej zasobów niż prosty blog z takim samym natężeniem ruchu. Jeśli wszyscy pracownicy PHP serwera są zajęci, utworzą kolejkę.

Gdy kolejka staje się zbyt duża, serwer ignoruje stare żądania, co może spowodować, że serwer zgłosi błąd bramy 504. Możesz zapytać swojego hosta o zwiększenie liczby pracowników PHP. Umożliwi to Twojej witrynie wykonywanie wielu żądań jednocześnie.

Problemy z zaporą

Zapora sieciowa Twojego serwera może mieć błędy lub niewłaściwą konfigurację. Być może kilka jego reguł uniemożliwia serwerowi prawidłowe nawiązanie połączenia. Aby dowiedzieć się, czy przyczyną jest zapora sieciowa, możesz sprawdzić dzienniki błędów serwera.

Problemy z łącznością sieciową

Problemy z łącznością między serwerem proxy a serwerem sieciowym mogą powodować opóźnienia w odpowiadaniu na żądania HTTP. Jeśli używasz modułu równoważenia obciążenia, mogą również występować problemy z łącznością sieciową.

Limity czasu HTTP

Limity czasu HTTP mogą wystąpić, gdy połączenie między serwerem WWW a klientem jest otwarte zbyt długo. W przypadku witryn WordPress zwykle dzieje się tak podczas uruchamiania importów WordPress. Jednym ze sposobów rozwiązania tego problemu jest przejście na szybsze połączenie internetowe.

Możesz również użyć narzędzia z obsługą WP-CLI, aby uruchomić skrypty bezpośrednio na serwerze, całkowicie omijając połączenie HTTP. Na przykład możesz użyć polecenia wp import WP-CLI, aby uruchomić wtyczkę WordPress Importer bezpośrednio z interfejsu wiersza poleceń.

Ważne: Błędy przekroczenia limitu czasu bramy 504 wyglądają podobnie do błędów usługi 503 niedostępnej lub błędów 502 Bad Gateway. Ale wszystkie są różne. Jeśli napotykasz błąd 504 w Kinsta, otwórz zgłoszenie do pomocy technicznej, aby natychmiast rozwiązać problem.

Do samodzielnego monitorowania przestojów witryny możesz użyć narzędzia takiego jak updown.io. Będzie okresowo sprawdzać stan Twojej witryny (lub dowolnego adresu URL), wysyłając do niej żądanie HTTP. Możesz ustawić częstotliwość sprawdzania od 15 sekund do 1 godziny. Jeśli Twoja witryna nie odpowiada poprawnie, powiadomi Cię e-mailem lub SMS-em.

Monitoruj swoją witrynę za pomocą updown.io
Monitoruj swoją witrynę łatwo dzięki updown.io

Otrzymasz dużą ilość darmowych kredytów z każdym kontem updown.io, ale jeśli szukasz tańszych alternatyw, możesz sprawdzić WebGazer lub UptimeRobot. Oba te narzędzia pomogą Ci monitorować czas pracy Twojej witryny co 5 minut za darmo. To wystarczy dla większości właścicieli witryn.

Pulpit narzędzia do monitorowania witryny WebGazer
Pulpit narzędzia do monitorowania witryny WebGazer

Monitorowanie witryny pozwoli Ci zorientować się, jak często nie działa. Jest to szczególnie przydatne, jeśli korzystasz z dostawcy hostingu współdzielonego. Większość zarządzanych hostów WordPress zajmuje się tym automatycznie. Dlatego zawsze zaleca się jechać z nimi.

Aby uzyskać szczegółowe wyjaśnienie, zapoznaj się z postem Kinsta na temat znaczenia zarządzanego hostingu WordPress.

Spam, boty lub ataki DDoS

Złośliwi atakujący mogą doprowadzić do indeksowania Twojego serwera internetowego, wysyłając zbyt wiele żądań i/lub wymagających dużej ilości zasobów. Jeśli Twoja witryna jest spamowana przez boty lub przechodzi atak DDoS, może to przeciążyć Twój serwer i spowodować błędy 504 Gateway Timeout dla wielu prawdziwych użytkowników.

Możesz przyjrzeć się ruchowi na serwerze i analizom, aby zobaczyć, czy zauważysz jakiekolwiek nieregularne wzorce w ruchu w witrynie. Jeśli używasz Kinsta do hostowania swojej witryny, możesz łatwo wyświetlić te dane, przechodząc do pulpitu nawigacyjnego MyKinsta Analytics.

Pulpit nawigacyjny MyKinsta Analytics
Pulpit nawigacyjny MyKinsta Analytics

Rozpocznij dochodzenie od sprawdzenia adresów IP najpopularniejszych klientów. Dzięki temu dowiesz się, kto i skąd generuje maksymalną liczbę żądań. Jeśli Twój serwer nagle zużywa ogromną przepustowość lub przyciąga duży ruch, ten raport będzie bardzo przydatny.

Przeglądanie „Najlepszych adresów IP klientów” na pulpicie nawigacyjnym MyKinsta
Wyświetlanie „Najlepszych adresów IP klienta” w panelu MyKinsta

Następnie możesz sprawdzić raport Analiza pamięci podręcznej . Tutaj możesz zobaczyć, ile żądań omija lub pomija pamięć podręczną lub jest obsługiwanych z pamięci podręcznej. Ze względu na wydajność i stabilność chcesz buforować jak najwięcej żądań, ale nie zawsze jest to możliwe.

Na przykład witryny WooCommerce generują wiele niemożliwych do zbuforowania żądań dotyczących funkcji, takich jak koszyk na zakupy i proces realizacji transakcji.

Ekran „Analiza pamięci podręcznej” w MyKinsta
Ekran „Analiza pamięci podręcznej” w MyKinsta

Na koniec możesz użyć wtyczki zabezpieczającej WordPress, aby zwiększyć bezpieczeństwo swojej witryny, wykrywając i blokując niepokojący ruch/adresy IP. Możesz poprosić swojego hosta o zablokowanie niektórych adresów IP.

Masz problemy z przestojami i WordPressem? Kinsta to rozwiązanie hostingowe zaprojektowane z myślą o wydajności i bezpieczeństwie! Sprawdź nasze plany

W zależności od długości i skali ataku może to być niekończący się proces umieszczania adresów IP na czarnej liście, ponieważ wielu atakujących zmienia swoje adresy IP i adresy proxy po zablokowaniu.

Uwaga: Kinsta nie pozwala swoim klientom instalować wtyczek bezpieczeństwa WordPress, ponieważ mogą one mieć ogromny wpływ na wydajność witryny, zwłaszcza na jej możliwości skanowania. Ponieważ Kinsta korzysta z systemów równoważenia obciążenia z Google Cloud Platform, blokowanie adresów IP nie zawsze działałoby zgodnie z przeznaczeniem.

Możesz użyć dedykowanych rozwiązań bezpieczeństwa, takich jak Cloudflare lub Sucuri, aby chronić swoje witryny przed atakami DDoS i robotami spamującymi. Aby uzyskać więcej informacji, możesz zapoznać się z artykułami Kinsta o tym, jak zainstalować Cloudflare na swojej witrynie WordPress i jak Sucuri pomogło powstrzymać atak DDoS.

Uszkodzona baza danych WordPress

Czasami błąd przekroczenia limitu czasu bramy 504 może być spowodowany uszkodzoną bazą danych, szczególnie w witrynach WordPress. Zazwyczaj jest to spowodowane uszkodzonymi tabelami lub plikami bazy danych. Czasami może to być również spowodowane poważnym problemem bezpieczeństwa, takim jak włamanie na Twoją witrynę lub bazę danych.

Naprawa uszkodzonej bazy danych WordPress zależy od problemu. Wtyczki takie jak WP-DBManager ułatwiają diagnozowanie problemów z bazą danych i ich naprawę. Na początek polecam przeczytanie szczegółowego przewodnika Kinsta na temat rozwiązywania problemów z bazą danych WordPress.

Sprawdź wtyczki i motywy swojej witryny

W większości przypadków wtyczki i motywy innych firm nie powodują błędów 504. Istnieje jednak niewielka szansa, że ​​mogą spowodować przekroczenie limitu czasu serwera, zwykle przez kolejkowanie wielu niebuforowanych żądań generowanych przez wtyczkę/motyw. Ponieważ wiąże to wielu pracowników PHP twojego serwera, może to spowodować błędy 504.

Świetnym przykładem tego problemu jest WooCommerce, wtyczka instalowana w celu dodania funkcjonalności e-commerce do witryn WordPress.

Najprostszym sposobem rozwiązania tego problemu jest dezaktywacja wszystkich wtyczek. Pamiętaj, że nie stracisz żadnych danych, jeśli po prostu dezaktywujesz wtyczkę.

Jeśli masz dostęp do panelu administracyjnego, możesz przejść do ekranu Wtyczki , wybrać Dezaktywuj z menu działań zbiorczych, zaznaczyć wszystkie wtyczki, a następnie nacisnąć przycisk Zastosuj . Spowoduje to wyłączenie wszystkich twoich wtyczek.

Dezaktywuj wtyczki w WordPress
Dezaktywacja wszystkich wtyczek WordPress za pośrednictwem pulpitu administratora WP

Jeśli nie możesz uzyskać dostępu do swojego obszaru administracyjnego, możesz wyłączyć wtyczki przez SFTP, korzystając z metody opisanej wcześniej. Po prostu zmień nazwę głównego folderu wtyczek, aby zbiorczo wyłączyć wszystkie wtyczki.

Po dezaktywacji wszystkich wtyczek sprawdź, czy Twoja witryna ładuje się prawidłowo. Jeśli to działa, musisz aktywować każdą wtyczkę, testując witrynę po włączeniu każdej wtyczki.

Na koniec upewnij się, że Twoje wtyczki, motywy i rdzeń WordPress są aktualne. Upewnij się również, że na Twoim serwerze działa zalecana wersja PHP.

Jeśli uważasz, że to zbyt przytłaczające, zawsze możesz zwrócić się o pomoc do gospodarza. Kinsta używa Kinsta APM i innych technik rozwiązywania problemów, aby pomóc klientom określić, która wtyczka, zapytanie lub skrypt może powodować błąd.

W najgorszych scenariuszach, takich jak nieefektywne zapytanie lub zły kod we wtyczce/motywie, możesz zaangażować programistę WordPress, który naprawi problem.

Sprawdź dzienniki błędów

Przeglądanie dzienników błędów może być bardzo pomocne podczas rozwiązywania problemów i debugowania błędów 504 w witrynie WordPress. Pomoże to szybko zawęzić problem w Twojej witrynie, zwłaszcza jeśli wynika on z wymagającej wtyczki w Twojej witrynie.

Jeśli jesteś klientem Kinsta, możesz łatwo zobaczyć błędy w przeglądarce dziennika na pulpicie nawigacyjnym MyKinsta.

Sprawdzanie dzienników błędów w panelu MyKinsta
Sprawdzanie dzienników błędów w panelu MyKinsta

Jeśli Twój host nie ma narzędzia do rejestrowania, możesz włączyć tryb debugowania WordPress, dodając następujący kod do pliku wp-config.php :

 define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );

Stała WP_DEBUG włącza lub wyłącza tryb debugowania WordPressa. Ma dwie opcjonalne stałe towarzyszące, które mogą rozszerzyć jego funkcje. Stała WP_DEBUG_LOG kieruje wszystkie błędy do zapisania w pliku debug.log w katalogu /wp-content/ . Jeśli nie widzisz tego pliku, zawsze możesz go utworzyć.

Stała WP_DEBUG_DISPLAY kontroluje, czy dzienniki debugowania są wyświetlane na stronie HTML. Ustawienie tego na false spowoduje ukrycie wszystkich błędów, ale możesz je później przejrzeć, ponieważ zdefiniowałeś również WP_DEBUG_LOG jako true.

Ważne: jeśli masz włączoną funkcję WP_DEBUG w środowisku Kinsta, przekieruje ona wszystkie błędy do pliku debug.log , a nie do pliku error.log na pulpicie nawigacyjnym MyKinsta.

Możesz również pobrać nieprzetworzone pliki dziennika błędów WordPress przez SFTP. Zazwyczaj dzienniki błędów można znaleźć w katalogu głównym serwera w folderze o nazwie „logs”.

Dostęp do folderu dzienników błędów WordPress przez SFTP
Dostęp do folderu dzienników błędów WordPress przez SFTP

Użytkownicy Kinsta mogą również włączyć tryb debugowania WordPress z pulpitu nawigacyjnego MyKinsta. Aby to zrobić, przejdź do Witryny> Narzędzia> Debugowanie WordPress i kliknij przycisk Włącz . Umożliwi to wyświetlanie błędów i powiadomień PHP bez włączania trybu debugowania przez SSH lub SFTP.

Na koniec możesz sprawdzić pliki dziennika serwera. W zależności od serwera, którego używasz do hostowania witryny WordPress, często można je znaleźć w następujących lokalizacjach:

  • Apache: /var/log/apache2/error.log/
  • Nginx: /var/log/nginx/error.log/

Możesz zapoznać się z dokumentacją związaną z logowaniem Apache lub Nginx, aby uzyskać więcej informacji.

Skonfiguruj poprawnie ustawienia Apache lub Nginx

Możesz edytować pliki konfiguracyjne serwera, aby zwiększyć limity zasobów dla określonych dyrektyw. Może to pomóc w rozwiązaniu błędu przekroczenia limitu czasu bramy 504.

Dla serwerów Apache

Najpierw dodaj następujący kod do swojego httpd.conf :

 TimeOut 600

To ustawienie określa, jak długo serwer będzie czekał na określone żądania, zanim oznaczy je jako problem z przekroczeniem limitu czasu sieci. Jego wartość domyślna to 60 sekund (wersja Apache 2.4).

Tę dyrektywę można dodać tylko w pliku httpd.conf , a nie w pliku .htaccess. Ponieważ większość dostawców hostingu współdzielonego nie pozwala na modyfikowanie pliku httpd.conf , możesz zamiast tego spróbować zwiększyć wartość dyrektywy LimitRequestBody w pliku .htaccess .

Następnie dodaj następujący wiersz do pliku php.ini :

 max_execution_time 300

Domyślna wartość dyrektywy max_execution_time PHP to 30 sekund. Zwiększenie jej pozwoli na dłuższe działanie skryptów PHP w Twojej witrynie.

Dla serwerów WWW Nginx

Jeśli korzystasz z witryn WordPress na Nginx + FastCGI Process Manager (PHP-FPM) lub używasz Nginx jako zwrotnego serwera proxy dla Apache, możesz dostosować ustawienia serwera, aby zapobiec błędom przekroczenia limitu czasu bramy 504.

Błąd przekroczenia limitu czasu bramy 504 na Nginx + FastCGI (PHP-FPM)

Najpierw musisz edytować plik konfiguracyjny puli PHP-FPM. Możesz go znaleźć w lokalizacji /etc/php7.4/fpm/pool.d/www.conf na serwerze Nginx (dokładna ścieżka może się różnić w zależności od wersji PHP). Alternatywnie możesz uruchomić następujące polecenie w swoim terminalu, aby edytować plik konfiguracyjny puli PHP-FPM:

 sudo nano /etc/php/7.2/fpm/pool.d/www.conf

Następnie ustaw następującą dyrektywę:

 request_terminate_timeout = 300

Następnie musisz edytować plik php.ini . Możesz go znaleźć w /etc/php.ini . Otwórz plik i dodaj/zmień wartość dyrektywy max_execution_time na 300 sekund.

 max_execution_time = 300

Na koniec dodaj następujący kod do bloku lokalizacji pliku nginx.conf :

 location ~ .php$ { ... fastcgi_read_timeout 300; }

Przeładuj Nginx i PHP-FPM, aby zmiany zaczęły obowiązywać.

 sudo service nginx reload sudo service php7.4-fpm reload

Dokładny kod do przeładowania PHP-FPM będzie się różnić w zależności od wersji PHP zainstalowanej na Twoim serwerze. Przetestuj swoją witrynę, aby sprawdzić, czy rozwiązała problem.

Błąd przekroczenia limitu czasu bramy 504 na serwerze proxy Nginx

Jeśli używasz Nginx jako odwrotnego serwera proxy dla Apache, możesz zmniejszyć jego limity, dodając następujące dyrektywy do pliku nginx.conf :

 proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;

Nie zapomnij przeładować Nginx po wprowadzeniu zmian.

sudo service nginx reload

Inne błędy HTTP, takie jak przekroczenie limitu czasu bramy 504

Jak wspomniano wcześniej w artykule, wiele innych błędów HTTP 5xx jest podobnych do błędu przekroczenia limitu czasu bramy 504. To dlatego, że wszystko dzieje się po stronie serwera. Te błędy obejmują:

  • 500 wewnętrzny błąd serwera
  • 501 Nie zaimplementowano Błąd
  • 502 Błąd nieprawidłowej bramy
  • 503 Usługa niedostępna Błąd

Inne błędy HTTP spowodowane problemami po stronie klienta, takie jak błąd 404 Not Found, są również podobne do błędu 504. Aby uzyskać więcej informacji, zapoznaj się ze szczegółowym przewodnikiem Kinsta i listą kodów stanu HTTP.

Jeśli nie wiesz, co spowodowało błąd przekroczenia limitu czasu 504 Gateway, jak możesz go naprawić na czas, aby ciężko zarobionych odwiedzających nie odbijać się na stronach konkurencji? Wszystkie szczegóły znajdziesz w tym poście. Kliknij, aby tweetować

Streszczenie

Twoja witryna WordPress może być dotknięta błędem przekroczenia limitu czasu bramy 504 z wielu powodów. W tym artykule dowiedziałeś się, jak rozwiązywać je wszystkie. Zazwyczaj te błędy są spowodowane problemami po stronie serwera, w takim przypadku możesz skontaktować się z hostem i szybko rozwiązać problem.

Musisz jednak również zrozumieć, że ten błąd może być spowodowany przez wtyczki, motywy, usługi innych firm, nieefektywne zapytania do bazy danych lub kombinację dwóch lub więcej z nich. Jeśli maksymalnie wykorzystujesz zasoby swojego serwera (np. pracowników PHP), zaleca się zoptymalizowanie witryny pod kątem wydajności.

Jeśli nadal uważasz, że Twoja witryna upływa limitu czasu, może to oznaczać, że musisz zaktualizować swój plan hostingowy lub liczbę pracowników PHP. Polecam rozważyć tę opcję dopiero po wyczerpaniu wszystkich innych rozwiązań opisanych w tym artykule.

From simple static sites to complex ecommerce and membership sites, Kinsta's scalable hosting plans are designed to accommodate all types of websites. To learn more about our scalable cloud hosting, check out this article!

Did we miss anything? If you're still finding it difficult to fix the 504 Gateway Timeout error on your WordPress site, leave a comment below.