A 504 Gateway Timeout Error to HTTP response status code
wskazujący, że serwer, który obecnie działa jako brama lub proxy, nie otrzymał terminowej odpowiedzi od innego serwera dalej upstream. Podobnie jak w przypadku większości kodów odpowiedzi HTTP, które wskazują na taki błąd, określenie dokładnej przyczyny 504 Gateway Timeout Error
może być trudne., Istnieją dziesiątki możliwych kodów statusu HTTP używanych do reprezentowania złożonych relacji między Klientem, aplikacją internetową, serwerem internetowym i często wieloma usługami internetowymi innych firm, więc określenie przyczyny określonego kodu statusu może być wyzwaniem, nawet w najlepszych okolicznościach.
w tym artykule zbadamy 504 Gateway Timeout Error
, patrząc na kilka wskazówek dotyczących rozwiązywania problemów i potencjalnych poprawek typowych problemów, które mogą powodować ten problem, więc zacznijmy!,
problem jest po stronie serwera
wszystkie kody statusu odpowiedzi HTTP, które znajdują się w kategorii 5xx
są brane pod uwagę server error responses
. Podobnie do502 Bad Gateway Error
przyjrzeliśmy się w przeszłości,504 Gateway Timeout Error
wskazuje, że coś poszło nie tak zgateway
lubproxy
serwerem, który jest dalej w górę. W ogólnym pojęciu sieciowym, upstream server
jest serwerem, który zapewnia usługę (tzn. jest dostępny przez) inny serwer., W związku z tym serwer, który jest upstream, znajduje się wyżej w ogólnej hierarchii serwerów niż serwer, który jest downstream
. Innym sposobem myślenia o upstream kontra downstream jest ich względna bliskość do urządzenia — tj. client
) – im większa liczba przeskoków wymaganych do przesłania danych od klienta do danego serwera, tym dalej upstream
serwer znajduje się.,
ponieważ504 Gateway Timeout Error
wskazuje, że coś poszło nie tak wserver
Twojej aplikacji, możemy w dużej mierze pominąćclient
strona rzeczy. Jeśli próbujesz zdiagnozować problem z własną aplikacją, możesz natychmiast zignorować większość kodu i komponentów po stronie klienta, takich jak HTML, kaskadowe arkusze stylów (CSS), JavaScript po stronie klienta i tak dalej. Nie dotyczy to również wyłącznie witryn internetowych., Wiele aplikacji na smartfony, które mają nowoczesny wygląd interfejsu użytkownika, jest w rzeczywistości zasilanych przez normalną aplikację internetową za kulisami; taką, która jest po prostu ukryta przed użytkownikiem. Jeśli używasz takiej aplikacji i wystąpi 504 Gateway Timeout Error
, problem nie będzie związany z aplikacją zainstalowaną na telefonie lub lokalnym urządzeniu testującym. Zamiast tego, będzie to coś po stronie serwera, który wykonuje większość logiki i przetwarzania za kulisami, poza zakresem lokalnego interfejsu przedstawionego użytkownikowi.,
To powiedziawszy, nie musi być tak, że konkretnyweb server
, na którym działa Twoja aplikacja, jest źródłem problemu. Zamiast tego jest całkowicie możliwe, że każdy aspekt konkretnej aplikacji (wraz z jej serwerami) działa bez zarzutu, ale 504 Gateway Timeout Error
może nadal występować, jeśli serwer macierzysty ma problemy.
zacznij od dokładnego backupu aplikacji
jak w przypadku czegokolwiek, lepiej grać bezpiecznie na początku niż coś spieprzyć i później żałować., W związku z tym ważne jest, aby wykonać pełną kopię zapasową aplikacji, bazy danych itp., Przed przystąpieniem do jakichkolwiek poprawek lub zmian w systemie. Co więcej, jeśli masz taką możliwość, Utwórz kompletną kopię aplikacji na drugim serwerze staging
, który nie jest „aktywny” lub nie jest w inny sposób aktywny i dostępny publicznie. Zapewni to czyste pole testowe, na którym można przetestować wszystkie potencjalne poprawki w celu rozwiązania problemu, bez zagrażania bezpieczeństwu lub świętości aplikacji na żywo.,
diagnozowanie błędu Timeout bramy 504
jak wspomniano,504 Gateway Timeout Error
oznacza, że serwer, który jestupstream
do jednego, z którym (client
), z którym łączysz się ,nie otrzymał „terminowej” odpowiedzi z innego serwera dalej w górę. W tym scenariuszu oznacza to, że serwer dostarczający504 Gateway Timeout Error
działa jakogateway
, więc poświęćmy chwilę na omówienie, czym jest brama (lub proxy)., W większości komunikacji HTTP, a client
połączy się z server
za pośrednictwem zewnętrznego gateway
komputer. Brama działa jak Brama, za pomocą której wiadomości z client
mogą być bezpiecznie wysyłane do server
I odwrotnie. Agateway
działa jakonode
w obrębie większej sieci web, łącząc i trasując komunikację między wielomaclient
,server
i innymi typami węzłów w (wirtualnej) okolicy.,
Wierzcie lub nie, większość domów z dostępem do Internetu ma nawet aktywną bramę. Twoja lokalna sieć domowa, która jest prawdopodobnie skonfigurowana przez router (lub hybrydowy router + modem), zazwyczaj przypisuje adresy IP wszystkim urządzeniom w sieci za pomocą adresu bazowego 192.168.1.*
, gdzie gwiazdka zmienia się w zależności od urządzenia., W większości przypadków komunikacja z jednego takiego adresu sieci lokalnej do innego adresu sieci lokalnej jest dozwolona, ale gdy komputer próbuje połączyć się z adresem IP spoza tego zakresu bazowego, gateway
routera przechwyci go i wykona komunikację między komputerem a serwerem zdalnym w Twoim imieniu.
w niektórych sytuacjach przyczyną problemu może być serwer WWW z Twoją aplikacją., Nginx i Apache) lub serwer WWW polega na usługach stron trzecich, które zazwyczaj znajdują się w innym miejscu na dodatkowych serwerach. Każdy z serwerów, z których łączy się twój Klient (przeglądarka internetowa), może być w tej chwili wyłączony lub mieć problemy, które mogą spowodować opóźnienie w przetwarzaniu i doprowadzić do 504 Gateway Timeout Error
, które widzisz.
przede wszystkim Google jest twoim przyjacielem., Nie bój się szukać konkretnych terminów związanych z Twoim problemem, takich jak nazwa oprogramowania CMS lub serwera www aplikacji, wraz z 504 Gateway Timeout Error
. Są szanse, że znajdziesz innych, którzy doświadczyli tego problemu i potencjalnie otrzymali rozwiązanie.,
Rozwiązywanie problemów po stronie serwera
oto kilka dodatkowych wskazówek, które pomogą Ci rozwiązać problem, co może powodować, że 504 Gateway Timeout Error
pojawia się po stronie serwera:
-
Recent DNS Changes
-System nazw domen (DNS
) jest zdecentralizowanym systemem nazewnictwa dla urządzeń podłączonych za pośrednictwem sieci (nawet ogromnej sieci, takiej jak sam Internet). W skrócie,DNS
kojarzy nazwy domen (np.,airbrake.io
) na określone adresy IP i przechowuje je w serii autorytatywnych serwerów nazw rozsianych po całym świecie. Tak więc, gdy poprosisz swój komputer o połączenie zairbrake.io
, Twój komputer faktycznie sprawdza z pobliskim serwerem nazwDNS
, aby dowiedzieć się, jaki konkretny adres IP (zasób internetowy) jest, z którym powinien się połączyć. Z twojej perspektywy to idzie bezpośrednio doairbrake.io
, ale za kulisami ruch jest kierowany do adresu IP (52.203.232.56
, w tym przypadku)., W związku z tym Twoja aplikacja może przedstawić504 Gateway Timeout Error
, jeśli Twoja witryna dokonała ostatnich zmian na serwerze DNS, co jest wynikiem zmiany serwerów hosta lub przeniesienia witryny na inny adres IP. Takie zmiany DNS, znane jakoDNS propagation
, nie są natychmiastowe i mogą czasami zająć kilka godzin, aby rozprzestrzenić się na wszystkich autorytatywnych serwerach nazw., -
Server Connectivity Issues
– choć może to wydawać się proste, jest całkowicie możliwe, że504 Gateway Timeout Error
po prostu wskazuje, że serwer gdzieś w łańcuchu jest wyłączony lub nieosiągalny z jakiegokolwiek powodu. Większość nowoczesnych aplikacji nie znajduje się na jednym serwerze, ale zamiast tego może być rozłożona na wiele systemów, a nawet polegać na wielu usługach stron trzecich. Jeśli któryś z tych serwerów jest wyłączony z powodu konserwacji lub w inny sposób niedostępny, może to spowodować błąd, który wydaje się pochodzić z twojej własnej aplikacji., -
Improper Firewall Configuration
– zapora sieciowa to podstawowe urządzenie zabezpieczające, które monitoruje ruch sieciowy i działa jako strażnik bramy, decydując, który ruch jest bezpieczny, a który może być złośliwy. W większości przypadków cały potencjalnie szkodliwy ruch jest zatrzymywany(i może być rejestrowany do użytku administratora sieci). W niektórych sytuacjach jest całkowicie możliwe, że zapora skonfigurowana gdzieś w sieci, w której działa aplikacja, zapobiega przedostawaniu się jakiegoś krytycznego ruchu., Jest to szczególnie prawdziwe w przypadku aplikacji, które opierają się na sieci dostarczania treści (CDNs
), które działają jako host stron trzecich dla „ciężkich” treści, takich jak obrazy lub filmy, hostując te treści w imieniu aplikacji, dzięki czemu aplikacja może utrzymać swoją szybkość i wydajność. Jednak automatyczne usługi zapory mogą czasami wykonywać fałszywe alarmy, myląc całkowicie bezpieczną i prawidłową zawartość z CDN lub w innym miejscu jako złośliwą, tym samym wyłączając ten strumień treści w jednej chwili, co może prowadzić do504 Gateway Timeout Error
., -
Check the Logs
– prawie każda aplikacja internetowa będzie przechowywać jakieś logi po stronie serwera.Application logs
są zazwyczaj historią tego, co aplikacja zrobiła, na przykład, które strony zostały żądane, z którymi serwerami została podłączona, jakie wyniki bazy danych zapewnia, i tak dalej.Server logs
są związane z faktycznym sprzętem, na którym działa aplikacja, i często zawierają szczegóły dotyczące stanu i stanu wszystkich połączonych usług, a nawet samego serwera., Google „dzienniki”, jeśli używasz CMS lub „dzienniki” i „dzienniki”, jeśli używasz niestandardowej aplikacji, aby uzyskać więcej informacji na temat znajdowania tych dzienników. -
Application Code or Script Bugs
– jeśli Wszystko inne zawiedzie, może się zdarzyć, że problem w jakimś niestandardowym kodzie w Twojej aplikacji powoduje problem. Spróbuj zdiagnozować, skąd może pochodzić problem, ręcznie debugując aplikację, a także analizując Dzienniki aplikacji i serwera., Najlepiej zrobić kopię całej aplikacji na lokalnej maszynie programistycznej i wykonać proces debugowania krok po kroku, który pozwoli odtworzyć dokładny scenariusz, w którym wystąpił504 Gateway Timeout Error
I wyświetlić kod aplikacji w momencie, gdy coś pójdzie nie tak.
bez względu na przyczynę, pojawienie się504 Gateway Timeout Error
pochodzącego z własnej aplikacji internetowej jest silną wskazówką, że może być potrzebne narzędzie do zarządzania błędami, aby pomóc ci automatycznie wykryć te i inne błędy w przyszłości., Takie mechanizmy mogą nawet natychmiast ostrzec Ciebie i twój zespół, gdy wystąpi błąd. Oprogramowanie do monitorowania błędów Airbrake zapewnia monitorowanie błędów w czasie rzeczywistym i automatyczne raportowanie wyjątków dla wszystkich projektów deweloperskich. Nowoczesny pulpit nawigacyjny Airbrake zapewnia całodobowe aktualizacje stanu aplikacji i wskaźników błędów. Bez względu na to, nad czym pracujesz, Airbrake łatwo integruje się ze wszystkimi najpopularniejszymi językami i frameworkami., Ponadto Airbrake ułatwia dostosowywanie parametrów WYJĄTKÓW, zapewniając jednocześnie pełną kontrolę nad systemem aktywnego filtrowania błędów, dzięki czemu zbierasz tylko te błędy, które mają największe znaczenie.
Sprawdź oprogramowanie do monitorowania błędów firmy Airbrake już dziś i przekonaj się, dlaczego tak wiele najlepszych na świecie zespołów inżynierskich wykorzystuje Airbrake, aby zrewolucjonizować swoje praktyki obsługi wyjątków!