Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Filmy
Więcej informacji o błędach 503 znajdziesz w tych filmach:
Wideo | Opis |
---|---|
Rozwiąż problemy z błędem 503 (Usługa niedostępna) – NoActiveTarget | Dowiedz się więcej o:
|
Krótki opis problemu
Aplikacja kliencka otrzymuje kod stanu odpowiedzi HTTP 503 z komunikatem Usługa niedostępna i kodem błędu NoActiveTarget dla żądań serwera proxy interfejsu API.
Komunikat o błędzie
Zobaczysz taką odpowiedź o błędzie:
HTTP/1.1 503 Service Unavailable
W odpowiedzi HTTP pojawi się ten komunikat o błędzie:
{ "fault": { "faultstring": "The Service is temporarily unavailable", "detail": { "errorcode": "messaging.adaptors.http.flow.NoActiveTargets" } } }
Możliwe przyczyny
Gdy używasz co najmniej jednego serwera docelowego w konfiguracji docelowego punktu końcowego w serwerze proxy interfejsu API, zwykle obserwowany jest komunikat HTTP 503 Service AVAILABLE (Usługa niedostępna) z kodem błędu NoActiveTarget (Nieaktywnych celów).
W tabeli poniżej znajdziesz możliwe przyczyny błędu 503 Service available z kodem błędu NoActiveTarget (niedostępnych):
Przyczyna | Opis | Kto może rozwiązywać problemy |
---|---|---|
Serwer docelowy jest wyłączony | Serwer docelowy określony w konfiguracji docelowego punktu końcowego jest wyłączony. | Użytkownicy chmury publicznej i prywatnej usługi Edge |
Błędy połączenia z powodu nieprawidłowego rozpoznawania nazw DNS | Rozpoznawanie nazw DNS serwera docelowego spowodowało nieprawidłowe adresy IP, które prowadziły do błędów połączenia. | Użytkownicy chmury Private Cloud |
Błędy połączeń | Problemy z siecią lub połączeniem uniemożliwiają klientowi nawiązanie połączenia z serwerem. | Użytkownicy chmury Private Cloud |
Nieprawidłowy alias hosta docelowego | Podany host serwera docelowego jest nieprawidłowy lub zawiera niechciane znaki (takie jak spacja). | Użytkownicy chmury publicznej i prywatnej usługi Edge |
Nieudane uzgadnianie połączenia SSL | Nie udało się nawiązać połączenia TLS/SSL między klientem a serwerem. | Użytkownicy chmury publicznej i prywatnej usługi Edge |
Błędy kontroli stanu | Kontrole stanu skonfigurowane pod kątem sprawdzania stanu serwera docelowego mogą się nie powieść z jakiegoś powodu. | Użytkownicy chmury Private Cloud |
Przyczyna: serwer docelowy jest wyłączony
Jeśli wszystkie serwery docelowe określone w konfiguracji docelowego punktu końcowego są wyłączone, otrzymasz odpowiedź 503 Service AVAILABLE (Niedostępna usługa) z kodem błędu NoActiveTarget (Nieaktywnych celów).
Diagnostyka
- Ustal nazwę serwera docelowego używanego w konkretnej konfiguracji docelowego punktu końcowego niedziałającego serwera proxy interfejsu API, korzystając z jednego z tych sposobów:
- Jeśli istnieje jeden docelowy punkt końcowy, sprawdź ten konkretny punkt końcowy.
- Jeśli masz wiele docelowych punktów końcowych i nie wiesz, który z nich wyłączył serwer docelowy, wykonaj te czynności:
- Włącz sesję śledzenia, wywołaj interfejs API i odtwórz problem – błąd 503 Service Niedostępne.
- Z poziomu logu czasu przejdź do sekcji Docelowy proces żądania rozpoczęto i określ nazwę docelowego punktu końcowego, jak pokazano poniżej:
- Po zidentyfikowaniu docelowego punktu końcowego pobierz nazwę serwera docelowego używaną w konfiguracji docelowego punktu końcowego, tak jak w tym przykładzie:
<TargetEndpoint name="default">> <HTTPTargetConnection> <LoadBalancer> <Server name="demo-target" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
W powyższym przykładzie występuje jeden serwer docelowy o nazwie demo-target.
- Uzyskaj definicję każdego z serwerów docelowych używanych w docelowym punkcie końcowym za pomocą interfejsu użytkownika Edge lub wywołania Edge API.
Interfejs Edge
Aby uzyskać definicję za pomocą interfejsu Edge:
- Kliknij Administracja > Środowiska > Serwery docelowe.
- Wybierz środowisko, w którym występuje błąd.
- Wyszukaj konkretną nazwę serwera docelowego, aby uzyskać definicję serwera docelowego.
Na przykład po wpisaniu nazwy serwera docelowego
demo-target
zostanie wyświetlona definicja taka jak poniżej:Zwróć uwagę, że serwer docelowy demo-target ma alias hosta, numer portu i włączony protokół SSL. Sam serwer docelowy jest jednak wyłączony , na co wskazuje wyszarzony element ENABLED.
Interfejs API Edge
Aby uzyskać definicję za pomocą interfejsu Edge API:
Użyj interfejsu Get TargetServer API, by uzyskać definicję serwera docelowego.
Dane wyjściowe definicji serwera docelowego
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>false</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
Dane wyjściowe interfejsu Apigee API wskazują, że element demo-target serwera docelowego jest wyłączony, ponieważ element IsEnabled ma wartość false (fałsz).
Ponieważ serwer docelowy jest wyłączony, podmiot przetwarzający wiadomości wyśle natychmiast w odpowiedzi na klienta komunikat 503 Service available (Usługa niedostępna) z kodem błędu NoActiveTarget (Niedostępny).
Rozdzielczość
Sprawdź, czy określone serwery docelowe używane w konfiguracji docelowego punktu końcowego Twojego serwera proxy interfejsu API są zawsze włączone.
Interfejs Edge
- Kliknij Administracja > Środowiska > Serwery docelowe.
- Wybierz środowisko, w którym występuje błąd.
- Wyszukaj konkretną nazwę serwera docelowego, aby zobaczyć jego definicję.
- Wybierz konkretny serwer docelowy i kliknij Edytuj.
- Zaznacz pole wyboru Włączone.
- Kliknij Aktualizuj.
Interfejs API Edge
Użyj interfejsu Update a Target Server API, aby zaktualizować definicję serwera docelowego i sprawdź, czy w ładunku żądania interfejsu API IsEnabled ma wartość true:
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
Jeśli problem nadal występuje, przejdź do Must Gather Diagnostic Information (Wymagane zbieranie informacji diagnostycznych).
Diagnozowanie problemów za pomocą monitorowania interfejsów API
Monitorowanie interfejsów API umożliwia szybkie wyodrębnianie problematycznych obszarów w celu diagnozowania problemów dotyczących błędów, wydajności i opóźnień oraz ich źródeł, takich jak aplikacje dla programistów, serwery proxy interfejsów API, cele backendu czy platforma API.
Przejrzyj przykładowy scenariusz pokazujący, jak rozwiązywać problemy 5xx z interfejsami API za pomocą API Monitoring. Możesz na przykład skonfigurować alert, aby otrzymywać powiadomienia, gdy liczba błędów w messaging.adaptors.http.flow.NoActiveTargets
przekroczy określony próg.
Musisz zebrać informacje diagnostyczne
Jeśli problem nie ustąpi mimo wykonania powyższych instrukcji, zbierz poniższe informacje diagnostyczne. Skontaktuj się z zespołem pomocy Apigee i udostępnij je:
- 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
- Plik śledzenia zawierający żądania z kodem 503 Service Niedostępne z kodem błędu NoActiveTarget
- Jeśli jesteś użytkownikiem Private Cloud, podaj te informacje:
- Zarejestrowano pełny komunikat o błędzie
- Nazwa środowiska
- Pakiet proxy API
- Plik śledzenia zawierający żądania z kodem 503 Service Niedostępne z kodem błędu NoActiveTarget
- 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
)