Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Filmy
Obejrzyj film poniżej, aby dowiedzieć się więcej o rozwiązywaniu błędów 503 dotyczących niedostępnych usług.
Wideo | Opis |
---|---|
Błąd 503 – usługa niedostępna z serwera backendu | Dowiedz się więcej o tych kwestiach:
|
Krótki opis problemu
Aplikacja kliencka otrzymuje stan odpowiedzi HTTP 503 z komunikatem Service Unavailable (Usługa niedostępna) po wywołanie serwera proxy API.
Komunikaty o błędach
Może się wyświetlić jeden z tych komunikatów o błędach:
HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity
Możesz też zobaczyć komunikat o błędzie podobny do tego: w odpowiedzi HTTP:
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Uwaga: powyższy kod odpowiedzi i komunikat o błędzie to tylko przykłady. W niektórych przypadkach może się pojawić tylko kod odpowiedzi o błędzie bez żadnego komunikatu o błędzie. Format i treść kodu odpowiedzi na błąd oraz komunikatu o błędzie mogą się różnić w zależności od i implementacji serwera backendu.
Przyczyny
Kod stanu HTTP 503 oznacza, że serwer obecnie nie jest w stanie obsłużyć przychodzących żądań. Zwykle ten błąd występuje wtedy, gdy serwer jest zbyt zajęty lub tymczasowo niedostępny z powodu konserwacji.
Możliwe przyczyny odpowiedzi 503 Service Unavailable (Usługa niedostępna) to:
Przyczyna | Opis | Kto może wykonywać czynności związane z rozwiązywaniem problemów |
---|---|---|
Przeciążony serwer | Serwer backendu jest przeciążony lub wykracza poza jego możliwości i nie może obsłużyć nowych przychodzące żądania klientów. | Użytkownicy chmury publicznej i prywatnej Edge |
Serwer w trakcie konserwacji | Na serwerze backendu mogą być tymczasowo prowadzone prace konserwacyjne. | Użytkownicy chmury publicznej i prywatnej Edge |
Przyczyna: przeciążony serwer/serwer w trakcie konserwacji
W Apigee Edge błąd 503 Service Unavailable może być zwracany z serwera backendu w jednej z następujących sytuacji:
- Serwer backendu jest przeciążony/zajęty i nie może obsłużyć nowych żądań.
- Serwer backendu jest tymczasowo niedostępny z powodu konserwacji.
Diagnostyka
Aby zdiagnozować błąd, możesz skorzystać z dowolnej z tych 3 metod:
- Narzędzie śledzenia
- Logi dostępu NGINX
- Bezpośrednie wywołanie serwera backendu
Klikaj poniższe karty, aby poznać poszczególne metody.
Narzędzie śledzenia
- Włącz sesję śledzenia, i wykonaj wywołanie interfejsu API, aby odtworzyć problem – „503 Service Unavailable”.
- Wybierz jedno z nieudanych żądań i sprawdź log czasu.
- Przejdź przez różne fazy śledzenia i znajdź miejsca, w których wystąpił błąd.
- Jeśli okaże się, że błąd 503 jest zwracany jako odpowiedź z serwera docelowego,
przyczyną błędu 503 jest serwer docelowy.
Oto przykładowy zrzut ekranu z widocznym błędem 503 Usługa niedostępna z serwera docelowego:
- Kliknij etap Odpowiedź otrzymana z serwera docelowego i przejdź przez
w sekcjach Nagłówki odpowiedzi i Treść odpowiedzi, aby sprawdzić, czy zawierają one przydatne informacje:
- Nagłówki odpowiedzi mogą zawierać nagłówek Serwer wskazujący z którego wysłano odpowiedź o błędzie.
- Treść odpowiedzi może zawierać dodatkowe informacje o przyczynach, serwer docelowy wysłał kod odpowiedzi 503.
- Sprawdź, czy błąd 503 pochodzi z serwera docelowego.
wartości X-Apigee-fault-source i X-Apigee-fault-code w AX
(zarejestrowane dane Analytics) faza śledzenia, wykonując te czynności:
- Kliknij AX (Analytics Data Recorded) (Faza działania), jak widać na tym zrzucie ekranu:
- Przewiń w dół sekcję Szczegóły etapu do sekcji Nagłówki odpowiedzi i określ wartości. X-Apigee-fault-code i X-Apigee-fault-source, jak pokazano poniżej:
- Jeśli wartości w polach X-Apigee-fault-source i X-Apigee-fault-code są zgodne z wartościami
jak w poniższej tabeli, możesz potwierdzić, że błąd 503 pochodzi
serwer docelowy:
Nagłówki odpowiedzi Wartość X-Apigee-fault-source cel X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
- Sprawdź, czy korzystasz z łańcucha serwerów proxy, tj. czy serwer docelowy/punkt końcowy to
Wywołuję inny serwer proxy w Apigee. Aby to sprawdzić:
- Wróć do fazy Żądanie wysłane do serwera docelowego i kliknij przycisk Pokaż skręt i określ alias docelowego hosta serwera.
- Jeśli alias hosta serwera docelowego wskazuje alias hosta wirtualnego, w łańcuchu serwerów proxy. W takim przypadku musisz powtórzyć wszystkie powyższe kroki dla łańcuchów aż do ustalenia, co tak naprawdę powoduje błąd 503 Service Unavailable (Usługa niedostępna). W takich przypadkach błąd 503 Usługa niedostępna może wystąpić w innych łańcuchowych serwerach proxy w innym miejscu fazy, które można diagnozować za pomocą tym poradniku.
- Jeśli alias hosta serwera docelowego wskazuje Twój serwer backendu, otwórz Rozwiązanie.
Logi dostępu NGINX
Aby określić, czy kod stanu 503 został wysłany, możesz też skorzystać z logów Lccess NGINX przez serwer backendu. Jest to szczególnie przydatne, jeśli problem występował w przeszłości. lub jeśli problem jest przejściowy i nie możesz zarejestrować logu czasu w interfejsie. Aby określić te informacje z logów dostępu NGINX, wykonaj te czynności:
- Sprawdź logi dostępu NGINX.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- Wyszukaj wszystkie błędy 503 dla określonego serwera proxy interfejsu API w określonym czasie (jeśli problem wystąpił w przeszłości) lub w przypadku żądań, które nadal kończą się niepowodzeniem z błędem 503.
- Jeśli występują błędy 503, sprawdź, czy nie pochodzą one z serwera backendu.
Jeśli wartości w polach X-Apigee-fault-source i X-Apigee-fault-code są zgodne
wyświetlane wartości
W tabeli poniżej błąd 503 pochodzi z serwera backendu:
Nagłówki odpowiedzi Wartość X-Apigee-fault-source cel X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode Oto przykładowy wpis zawierający błąd 503 spowodowany przez serwer docelowy:
- Sprawdź serwer proxy interfejsu API i upewnij się, że używasz łańcuch serwerów proxy, np. jeśli docelowy serwer lub docelowy punkt końcowy nie wywołuje innego serwera proxy w Apigee. Jeśli używasz w łańcuchu proxy, musisz powtórzyć wszystkie powyższe kroki dla tego łańcucha proxy, aż określić, co tak naprawdę powoduje błąd 503 Service niedostępna. W takich przypadkach 503 Usługa niedostępna może też wystąpić w innych łańcuchowych serwerach proxy na innych etapach, które można zdiagnozować za pomocą tego poradnika.
- Jeśli potwierdzisz, że nie używasz łańcucha serwerów proxy, a błąd 503 pochodzi z serwera backendu, a potem kliknij Rozwiązanie.
Wywołanie serwera backendu
Możesz nawiązać bezpośrednie połączenie z serwerem backendu i sprawdzić, czy otrzymujesz to samo Odpowiedź 503 Usługa niedostępna w odpowiedzi na żądanie wysłane przez Apigee Edge.
- Sprawdź, czy masz wszystkie wymagane nagłówki, parametry zapytania i dane logowania, które muszą być przekazywane do serwera backendu w ramach żądania.
- Jeśli usługa backendu jest dostępna publicznie, możesz użyć polecenia curl Postman lub dowolny inny klient REST i bezpośrednio wywołaj interfejs API serwera backendu.
- Jeśli serwer backendu jest dostępny tylko z procesora wiadomości, możesz użyć metody curl, Postman lub innego klienta REST i bezpośrednio wywołaj interfejs API serwera backendu. z procesora wiadomości.
- Sprawdź, czy usługa backendu rzeczywiście zwraca błąd 503 Usługa niedostępna.
Rozdzielczość
Jeśli masz pewność, że błąd 503 pochodzi z serwera backendu, możesz Wykonaj te czynności, aby rozwiązać problem:
- Jeśli problem jest spowodowany przerwą w działaniu serwera backendu, możesz przełączyć serwer backendu do trybu online po zakończeniu konserwacji.
- Jeśli problem jest spowodowany przeciążeniem serwera backendu, rozwiąż problem, jeśli masz dostęp do serwera backendu. W przeciwnym razie być może trzeba będzie skontaktować się z zespołem serwera backendu, aby rozwiązać ten problem.
Diagnozowanie problemów przy użyciu monitorowania interfejsów API
Monitorowanie interfejsów API umożliwia izolowanie problematycznych obszarów, by szybko diagnozować błędy, wydajność oraz problemy związane z opóźnieniami i ich źródłem, takie jak aplikacje dla programistów, serwery proxy interfejsów API, miejsca docelowe backendu lub platformę API.
Zapoznaj się z przykładem scenariusz pokazujący, jak rozwiązywać problemy z kodem 5xx w interfejsach API przy użyciu monitorowania API. Możesz na przykład skonfigurować alert, który będzie Cię powiadamiać, gdy komunikatów.adaptors.http.flow.ErrorResponseCode przekracza określony próg.
Musi zbierać informacje diagnostyczne
Jeśli po wykonaniu powyższych czynności problem nie ustąpi, zbierz tych informacji diagnostycznych, a następnie skontaktuj się Zespół pomocy Apigee
Jeśli jesteś użytkownikiem chmury publicznej, podaj te informacje:
- Nazwa organizacji
- Nazwa środowiska
- Nazwa serwera proxy interfejsu API
- Wykonaj polecenie curl, aby odtworzyć błąd 503
- Plik śledzenia zawierający żądania z błędem 503 Usługa niedostępna
- Jeśli błędy 503 obecnie nie występują, podaj okres wraz ze strefą czasową. gdy w przeszłości wystąpiły błędy 503.
Jeśli jesteś użytkownikiem chmury prywatnej, podaj te informacje:
- Pełny komunikat o błędzie zaobserwowany dla nieudanych żądań.
- Organizacja, nazwa środowiska i nazwa serwera proxy interfejsu API, w przypadku których występują błędy 503.
- pakiet serwerów proxy API.
- Plik śledzenia zawierający żądania z błędem 503 Usługa niedostępna.
- Logi dostępu NGINX.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- Logi procesora wiadomości.
/opt/apigee/var/log/edge-message-processor/logs/system.log
- Przedział czasu z informacjami o strefie czasowej, w którym wystąpiły błędy 503.