503 Usługa niedostępna – serwer backendu

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:
  • Wprowadzenie do błędu 503 niedostępnego w Apigee Edge
  • Rozwiązywanie problemów z błędem 503 Usługa niedostępna w czasie rzeczywistym Serwer backendu

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

  1. Włącz sesję śledzenia, i wykonaj wywołanie interfejsu API, aby odtworzyć problem – „503 Service Unavailable”.
  2. Wybierz jedno z nieudanych żądań i sprawdź log czasu.
  3. Przejdź przez różne fazy śledzenia i znajdź miejsca, w których wystąpił błąd.
  4. 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:

  5. 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.
    .
  6. 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:
    1. Kliknij AX (Analytics Data Recorded) (Faza działania), jak widać na tym zrzucie ekranu:
    2. 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:
    3. 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
  7. 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ć:
    1. Wróć do fazy Żądanie wysłane do serwera docelowego i kliknij przycisk Pokaż skręt i określ alias docelowego hosta serwera.
    2. 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.
    3. 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:

  1. Sprawdź logi dostępu NGINX.
    /opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
  2. 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.
  3. 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:

  4. 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.
  5. 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.

  1. Sprawdź, czy masz wszystkie wymagane nagłówki, parametry zapytania i dane logowania, które muszą być przekazywane do serwera backendu w ramach żądania.
  2. 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.
  3. 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.
  4. 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.