Sie lesen gerade die Dokumentation zu Apigee Edge.
Apigee X-Dokumentation aufrufen info
Videos
Weitere Informationen zu 503‑Fehlern finden Sie in den folgenden Videos:
| Video | Beschreibung |
|---|---|
| Fehler 503 „Service Unavailable“ aufgrund von DNS-Problemen beheben | Hier finden Sie Informationen zu folgenden Themen:
|
| Fehler „503 Service Unavailable“ aufgrund eines Netzwerkproblems beheben | Beheben eines Echtzeitfehlers 503 „Service Unavailable“ aufgrund eines Netzwerkproblems in Apigee Edge |
Symptom
Die Clientanwendung empfängt nach einem API-Proxy-Aufruf den HTTP-Antwortstatus 503 mit der Meldung Service Unavailable.
Fehlermeldungen
Möglicherweise wird die folgende Fehlermeldung angezeigt:
HTTP/1.1 503 Service Unavailable
Möglicherweise wird auch die folgende Fehlermeldung in der HTTP-Antwort angezeigt:
Dienst nicht verfügbar
{
"fault": {
"faultstring": "The Service is temporarily unavailable",
"detail": {
"errorcode": "messaging.adaptors.http.flow.ServiceUnavailable"
}
}
}
Mögliche Ursachen
Die HTTP-Antwort 503 Service Unavailable mit dem Fehlercode messaging.adaptors.http.flow.ServiceUnavailable tritt auf, wenn beim Message Processor von Apigee Edge Fehler aufgrund von Zeitüberschreitungen bei der Verbindung, falschen Hostnamen oder SSL-Handshake-Fehlern bei der Kommunikation mit dem Backend-Server auftreten.
Mögliche Ursachen für die Antwort 503 Service Unavailable:
| Ursache | Beschreibung | Wer darf die Schritte zur Fehlerbehebung ausführen? |
|---|---|---|
| Verbindungsfehler aufgrund falscher DNS-Auflösung | Die DNS-Auflösung des Zielservers hat zu fehlerhaften IP-Adressen geführt, die zu Verbindungsfehlern führt. | Edge Private Cloud-Nutzer |
| Verbindungsfehler | Netzwerk- oder Verbindungsprobleme verhindern, dass der Client eine Verbindung zum Server herstellen kann. | Edge Private Cloud-Nutzer |
| Falscher Hostname des Zielservers | Der angegebene Zielserverhost ist falsch oder enthält unerwünschte Zeichen (z. B. Leerzeichen). | Nutzer der Edge Public und Private Cloud |
| Fehler beim SSL-Handshake | Der TLS-/SSL-Handshake zwischen Client und Server ist fehlgeschlagen. Die Fehlerbehebung für diese Art von Problem wird in einem separaten Thema behandelt. | Nutzer der Edge Public und Private Cloud |
Allgemeine Diagnoseschritte
Nachricht-ID der fehlgeschlagenen Anfrage ermitteln
Trace-Tool
So ermitteln Sie die Nachrichten-ID der fehlgeschlagenen Anfrage mit dem Trace-Tool:
- Wenn das Problem weiterhin besteht, aktivieren Sie die Trace-Sitzung für die betroffene API.
- Führen Sie den API-Aufruf aus und reproduzieren Sie das Problem: „503 Service Unavailable“ mit dem Fehlercode
messaging.adaptors.http.flow.ServiceUnavailable. - Wählen Sie eine der fehlgeschlagenen Anfragen aus.
- Rufen Sie die AX-Phase auf und ermitteln Sie die Nachrichten-ID (
X-Apigee.Message-ID) der Anfrage, indem Sie im Abschnitt Phasendetails nach unten scrollen (siehe Abbildung unten).
NGINX-Zugriffslogs
So ermitteln Sie die Nachrichten-ID der fehlgeschlagenen Anfrage anhand der NGINX-Zugriffsprotokolle:
Sie können auch die NGINX-Zugriffsprotokolle verwenden, um die Nachrichten-ID für die 503-Fehler zu ermitteln. Dies ist besonders hilfreich, wenn das Problem in der Vergangenheit aufgetreten ist oder wenn es sich um ein nur gelegentlich auftretendes Problem handelt und Sie den Trace nicht in der Benutzeroberfläche erfassen können. So ermitteln Sie diese Informationen aus NGINX-Zugriffsprotokollen:
- Prüfen Sie die NGINX-Zugriffsprotokolle: (
/opt/apigee/var/log/edge-router/nginx/ <org>~ <env>.<port#>_access_log) - Suchen Sie nach 503-Fehlern für den jeweiligen API-Proxy in einem bestimmten Zeitraum (wenn das Problem in der Vergangenheit aufgetreten ist) oder danach, ob Anfragen weiterhin mit 503 fehlschlagen.
- Wenn 503-Fehler mit X-Apigee-fault-code messaging.adaptors.http.flow.ServiceUnavailable auftreten, notieren Sie sich die Nachrichten-ID für eine oder mehrere solcher Anfragen, wie im folgenden Beispiel gezeigt:
Beispieleintrag mit dem Fehler 503
Verbindungsfehler aufgrund einer falschen DNS-Auflösung
Diagnose
- Nachricht‑ID der fehlgeschlagenen Anfrage ermitteln
- Suchen Sie im Message Processor-Log (
/opt/apigee/var/log/edge-message-processor/logs/system.log) nach der spezifischen Anfragenachricht-ID. Möglicherweise werden die folgenden Fehler angezeigt:
Ein onConnectTimeout-Fehler weist darauf hin, dass der Message Processor innerhalb des voreingestellten Verbindungszeitlimits (Standard: 3 Sekunden) keine Verbindung zum Backend-Server herstellen konnte.2019-08-14 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onTimeout() : ClientChannel[Connected:]@164162 useCount=1 bytesRead=0 bytesWritten=0 age=3001ms lastIO=3001ms .onConnectTimeout connectAddress=www.abc.com/11.11.11.11 resolvedAddress=www.abc.com/22.22.22.22 2019-08-14 09:11:49,333 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 ERROR ADAPTORS.HTTP.FLOW - RequestWriteListener.onTimeout() : RequestWriteListener.onTimeout(HTTPRequest@6b393600)
- Notieren Sie sich die aufgelöste IP-Adresse im Fehler onConnectTimeout und prüfen Sie, ob die IP-Adresse für Ihren Backend-Server gültig ist. Wenn die IP-Adresse gültig ist, fahren Sie mit Verbindungsfehler fort.
- Wenn die IP-Adresse ungültig ist, liegt das höchstwahrscheinlich an Problemen mit der DNS-Auflösung.
- Wiederholen Sie Schritt 3 und Schritt 4 für einige weitere fehlgeschlagene API-Anfragen und prüfen Sie, ob Sie dieselben oder andere ungültige IP-Adressen sehen.
- Suchen Sie im Message Processor-Log (
/opt/apigee/var/log/edge-message-processor/logs/system.log) nach Nachrichten mit dem Keyword DNS Refresh. Prüfen Sie, ob dem DNS-Cache auf dem Message Processor gelegentlich ungültige oder fehlerhafte IP-Adressen hinzugefügt werden.2019-08-14 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 INFO c.a.p.h.d.DNSCachedAddress - DNSCachedAddress.reportDifferences() : DNS Refresh for host: apitarget-uat.schemeweb.co.uk:4436. Added 2 IPs [www.abc.com/22.22.22.22, www.abc.com/33.33.33.33] Removed 1 IPs [www.abc.com/11.11.11.11]
- Dieses Problem kann auftreten, wenn es Probleme mit den autoritativen DNS-Servern oder den in
/etc/resolv.confkonfigurierten Nameservern gibt.
In der Regel können ein oder mehrere autoritative DNS-Server für die DNS-Auflösung konfiguriert werden. Wenn keine autoritativen DNS-Server vorhanden sind, wird auf die in/etc/resolv.confkonfigurierte Einrichtung zurückgegriffen und die DNS-Auflösung entsprechend durchgeführt. Wenn die/etc/resolv.confbeispielsweise für die Verwendung bestimmter Nameserver konfiguriert ist, werden diese Nameserver für die DNS-Auflösung verwendet. - Wenn es Probleme mit autoritativen DNS-Servern oder Nameservern gibt, die in
/etc/resolv.confangegeben sind, werden die Hostnamen des Backend-Servers in fehlerhafte/ungültige IP-Adressen aufgelöst. Die ungültigen IP-Adressen werden dann im DNS-Cache des Message Processors gespeichert.- Wenn das Problem mit den autoritativen DNS-Servern oder den in
/etc/resolv.confangegebenen Nameservern weiterhin besteht, bleiben die ungültigen IP-Adressen im DNS-Cache des Message Processors. Solange die ungültigen IP-Adressen im DNS-Cache des Message Processors gespeichert sind, schlagen die Anfragen für alle APIs, die den entsprechenden Backend-Server verwenden, mit dem Fehler 503 fehl. - Wenn das Problem mit autoritativen DNS-Servern oder Nameservern, die in
/etc/resolv.confangegeben sind, nur zeitweise auftritt, werden gute und schlechte IP-Adressen zeitweise im DNS-Cache gespeichert. In diesem Fall werden für alle APIs, die den jeweiligen Backend-Server verwenden, zeitweise 503-Fehler angezeigt.
- Wenn das Problem mit den autoritativen DNS-Servern oder den in
- Wenn das Problem mit den DNS-Servern weiterhin besteht, treten fortlaufend Fehler auf. Wenn das Problem mit DNS-Servern nur zeitweise auftritt, sehen Sie auch nur zeitweise Fehler. Das bedeutet, dass immer dann, wenn der Hostname des Backend-Servers in fehlerhafte IP-Adressen aufgelöst wird, 503-Fehler auftreten. Wenn die Hostnamen des Backend-Servers in gültige IP-Adressen aufgelöst werden, erhalten Sie erfolgreiche Antworten.
Auflösung
Wenden Sie sich an den Administrator Ihres Betriebssystems, um die Probleme mit den DNS-Servern zu beheben.
- Wenn es ein Problem mit Ihren autoritativen DNS-Servern oder den in
/etc/resolv.confangegebenen Nameservern gibt, beheben Sie das Problem auf dem entsprechenden Server. - Wenn es ein Problem mit der Konfiguration in
/etc/resolv.confauf den Systemen mit Message Processors gibt, beheben Sie das Konfigurationsproblem.
Verbindungsfehler
Ein Verbindungsfehler tritt auf, wenn ein Apigee Edge Message Processor versucht, eine Verbindung zu einem Backend-Server herzustellen, und eines der folgenden Probleme auftritt:
- Der Message Processor kann innerhalb des voreingestellten Zeitlimits für die Verbindung keine Verbindung herstellen. (Standard: 3 Sekunden)
- Der Backend-Server lehnt die Verbindung ab.
Diagnose
- Nachricht‑ID der fehlgeschlagenen Anfrage ermitteln
-
Suchen Sie im Message Processor-Log (
/opt/apigee/var/log/edge-message-processor/logs/system.log) nach der ID der jeweiligen Anfragenachricht. Möglicherweise werden die folgenden Fehler angezeigt:-
Ein onConnectTimeout-Fehler gibt an, dass der Message Processor innerhalb des voreingestellten Verbindungszeitlimits keine Verbindung zum Backend-Server herstellen konnte.
2016-06-23 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@2 ERROR HTTP.CLIENT - HTTPClient$Context.onTimeout() : ClientChannel[C:]@10 useCount=1 bytesRead=0 bytesWritten=0 age=3001ms lastIO=3001ms .onConnectTimeout connectAddress=www.abc.com/11.11.11.11:80 resolvedAddress=www.abc.com/11.11.11.11 2016-06-23 09:11:49,333 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@2 ERROR ADAPTORS.HTTP.FLOW - RequestWriteListener.onTimeout() : RequestWriteListener.onTimeout(HTTPRequest@6b393600)
-
Der Fehler java.net.ConnectException: Connection refused weist darauf hin, dass die Verbindung vom Backend-Server abgelehnt wurde.
14:40:16.531 +0530 2016-06-17 09:10:16,531 org:myorg env:prod api:www.abc.com rev:1 rrt07eadn-22739-40983870-15 NIOThread@2 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() : connect to www.abc.com:11.11.11.11:443 failed with exception {} java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_75] at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) ~[na:1.7.0_75] at com.apigee.nio.ClientChannel.finishConnect(ClientChannel.java:121) ~[nio-1.0.0.jar:na] at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:108) ~[nio-1.0.0.jar:na]
-
Ein onConnectTimeout-Fehler gibt an, dass der Message Processor innerhalb des voreingestellten Verbindungszeitlimits keine Verbindung zum Backend-Server herstellen konnte.
- Prüfen Sie, ob Sie mit dem Befehl
telnetvon jedem Message Processor aus eine direkte Verbindung zum jeweiligen Backend-Server herstellen können:- Wenn der Backend-Server in eine einzelne IP-Adresse aufgelöst wird, verwenden Sie den folgenden Befehl:
telnet BackendServer-IPaddress 443 - Wenn der Backend-Server in mehrere IP-Adressen aufgelöst wird, verwenden Sie den Hostnamen des Backend-Servers im
telnet-Befehl, wie unten gezeigt:telnet BackendServer-HostName 443
- Wenn der Backend-Server in eine einzelne IP-Adresse aufgelöst wird, verwenden Sie den folgenden Befehl:
- Wenn Sie eine Verbindung zum Backend-Server herstellen können, wird möglicherweise eine Meldung wie
Connected to backend-serverangezeigt. Wenn Sie keine Verbindung zum Backend-Server herstellen können, liegt das möglicherweise daran, dass die IP-Adressen der Message Processors auf dem jeweiligen Backend-Server nicht auf der Zulassungsliste stehen.
Auflösung
Gewähren Sie Zugriff auf die IP-Adressen des Message Processors auf dem jeweiligen Backend-Server, damit Traffic von den Edge Message Processors auf Ihren Backend-Server zugreifen kann. Unter Linux können Sie beispielsweise iptables verwenden, um den Traffic von den IP-Adressen des Message Processors auf dem Backend-Server zuzulassen.
Wenn das Problem weiterhin besteht, wenden Sie sich an Ihren Netzwerkadministrator, um das Problem zu ermitteln und zu beheben. Wenn Sie weitere Unterstützung von Apigee benötigen, wenden Sie sich an den Apigee-Support.
Falscher Hostname des Zielservers
Diagnose
Wenn der im Zielserver angegebene Hostname falsch ist, erhalten Sie möglicherweise die Antwort 503 Service Unavailable mit dem Fehlercode messaging.adaptors.http.flow.ServiceUnavailable..
Trace-Tool
So diagnostizieren Sie Probleme mit dem Trace-Tool:
- Wenn das Problem weiterhin besteht, aktivieren Sie die Trace-Sitzung für die betroffene API.
- Führen Sie den API-Aufruf aus und reproduzieren Sie das Problem: „503 Service Unavailable“ mit dem Fehlercode
messaging.adaptors.http.flow.ServiceUnavailable. - Wählen Sie eine der fehlgeschlagenen Anfragen aus.
- Navigieren Sie durch die verschiedenen Phasen des Traces und suchen Sie nach der Stelle, an der der Fehler aufgetreten ist.
- Wählen Sie die FlowInfo mit dem Fehler aus. Weitere Informationen finden Sie im Feld error.cause, in dem die Ursache für den Fehler angegeben ist, wie im folgenden Beispiel:
Beispielanfrage mit „error.cause“ im Trace

- Wenn error.cause den Wert Host not reachable (Host nicht erreichbar) hat, ist die wahrscheinliche Ursache für den Fehler eine der folgenden:
- Der in der Zielserver-/Zielendpunktkonfiguration angegebene Hostname ist falsch oder enthält unerwünschte Leerzeichen oder Sonderzeichen.
Beispiel: Im Hostnamen ist ein unerwünschtes Leerzeichen enthalten, wie unten dargestellt:
"demo-target.apigee.net " - Der Hostname, der durch die Variable target.url im API-Proxy mit der Richtlinie AssignMessage oder JavaScript überschrieben wird, ist falsch oder enthält ein Leerzeichen oder andere unerwünschte Sonderzeichen.
- Der in der Zielserver-/Zielendpunktkonfiguration angegebene Hostname ist falsch oder enthält unerwünschte Leerzeichen oder Sonderzeichen.
- Prüfen Sie die Konfiguration des Zielendpunkts und/oder die Definition des Zielservers, um festzustellen, ob der Hostname des Zielservers falsch ist oder unerwünschte Leerzeichen oder Sonderzeichen enthält.
- Wenn der Host des Zielservers dynamisch erstellt wird, prüfen Sie die entsprechende Richtlinie (z. B. AssignMessage-/JavaScript-Richtlinie), die zum Erstellen verwendet wurde. Prüfen Sie, ob der Hostname des Zielservers falsch ist oder unerwünschte Leerzeichen oder Sonderzeichen enthält.
- Nachdem Sie den Hostnamen des Zielservers ermittelt haben, führen Sie den Befehl
nslookup/digfür den Hostnamen aus, um zu prüfen, ob er aufgelöst werden kann.Wenn Sie beispielsweise den Befehl
nslookupfür den Hostnamen mit einem unerwünschten Leerzeichen ausführen, wird die folgende Ausgabe zurückgegeben:nslookup "demo-target.apigee.net " Server: 49.205.75.2 Address: 49.205.75.2#53 ** server can't find demo-target.apigee.net\032: NXDOMAIN
- Wenn der Betriebssystembefehl
nslookupden Hostnamen ebenfalls nicht auflösen kann, ist die Ursache dieses Problems der falsche Hostname, der für den Zielserver verwendet wird.Gehen Sie zu Lösung.
Logs des Nachrichtenprozessors
So diagnostizieren Sie Probleme mithilfe von Logs des Nachrichtenprozessors:
- Ermitteln Sie die Nachrichten-ID der fehlgeschlagenen Anfrage.
- Suchen Sie im Message Processor-Log nach der Nachrichten-ID. (
/opt/apigee/var/log/edge-message-processor/logs/system.log) - Wenn Sie die folgenden Warn- oder Fehlermeldungen sehen, konnte der Message Processor den Hostnamen nicht auflösen. Da die Nachricht in den Schlummermodus versetzt wird, sehen Sie diese Warnmeldung möglicherweise nicht für alle Nachrichten-IDs/Anfragen.
org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid> NIOThread@0 WARN S.HTTPCLIENTSERVICE - DNSCache$2.failed() : Failed to resolve hostname www.somehost.com . Reason mocktarget.apigee.net : Name or service not known. This log message will snooze for 2 hours
- Danach wird eine Warnmeldung angezeigt, in der der Message Processor die Adresse aus dem DNS-Cache entfernt, da der Host des Zielservers nicht erreicht werden konnte.
org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid> NIOThread@0 WARN c.a.p.h.d.DNSCachedAddress - DNSCachedAddress.addressNotReachable() : The last address has been removed from Address list null refreshing
- Möglicherweise wird dann eine Meldung angezeigt, in der der Message Processor mit der Ausnahme „Host not reachable“ (Host nicht erreichbar) fehlschlägt. Manchmal wird der Hostname als Teil der Fehlermeldung angezeigt:
org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid> NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() : connect to demo-target.apigee.net failed with exception {} java.lang.RuntimeException: Host not reachable at com.apigee.protocol.http.HTTPClient$Context.initConnect(HTTPClient.java:704) at com.apigee.protocol.http.HTTPClient$Context.send(HTTPClient.java:675) at com.apigee.messaging.adaptors.http.flow.data.TargetRequestSender.sendRequest(TargetRequestSender.java:234) …<snipped>
- Manchmal wird der Hostname als null angezeigt, da er nicht aufgelöst oder erreicht werden kann.
org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid> NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() : connect to null failed with exception {} java.lang.RuntimeException: Host not reachable at com.apigee.protocol.http.HTTPClient$Context.initConnect(HTTPClient.java:704) at com.apigee.protocol.http.HTTPClient$Context.send(HTTPClient.java:675) at com.apigee.messaging.adaptors.http.flow.data.TargetRequestSender.sendRequest(TargetRequestSender.java:234) …<snipped>
- Der Fehler
Host not reachabletritt in der Regel in einem der folgenden Fälle auf:- Der in der Zielserver-/Zielendpunktkonfiguration angegebene Hostname ist falsch oder enthält unerwünschte Leerzeichen oder Sonderzeichen.
In der folgenden Fehlermeldung ist beispielsweise ein unerwünschtes Leerzeichen im Hostnamen „demo-target.apigee.net “ enthalten:NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() : connect to demo-target.apigee.net failed with exception
- Der Hostname, der im API-Proxy mit der Variablen target.url mithilfe der Richtlinie AssignMessage oder JavaScript überschrieben wird, ist falsch oder enthält ein Leerzeichen oder andere unerwünschte Sonderzeichen.
- Der in der Zielserver-/Zielendpunktkonfiguration angegebene Hostname ist falsch oder enthält unerwünschte Leerzeichen oder Sonderzeichen.
- Ermitteln Sie den Hostnamen des Zielservers, mit dem der Message Processor kommunizieren möchte, indem Sie eine der folgenden Methoden verwenden:
- Sehen Sie sich die Fehlermeldung mit
Host not reachablegenau an. - Wenn in der Fehlermeldung der Hostname angezeigt wird, kopieren Sie ihn einschließlich aller Leerzeichen oder Sonderzeichen.
- Wenn in der Fehlermeldung null für den Hostnamen angezeigt wird, wie in der folgenden Fehlermeldung,
org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid> NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() : connect to null failed with exception {}
- Ermitteln Sie den Hostnamen, indem Sie die Definition des Zielservers prüfen, die im fehlgeschlagenen API-Proxy verwendet wird.
- Wenn der Host des Zielservers dynamisch erstellt wird, prüfen Sie die entsprechende Richtlinie (z. B. AssignMessage-/JavaScript-Richtlinie), die zum Erstellen verwendet wurde.
- Nachdem Sie den Hostnamen des Zielservers ermittelt haben, führen Sie den Befehl nslookup/dig für den Hostnamen aus und prüfen Sie, ob er aufgelöst werden kann.
Führen Sie beispielsweise den Befehl nslookup für den Hostnamen aus, der ein Leerzeichen enthält.
nslookup "demo-target.apigee.net " Server: 49.205.75.2 Address: 49.205.75.2#53 ** server can't find demo-target.apigee.net\032: NXDOMAIN - Wenn der Betriebssystembefehl nslookup den Hostnamen ebenfalls nicht auflösen kann, ist die Ursache dieses Problems der falsche Hostname, der für den Zielserver verwendet wird.
Auflösung
- Achten Sie darauf, dass der in der Zielendpunktkonfiguration oder in der Zielserverdefinition angegebene Zielserverhostname korrekt ist und keine unerwünschten Leerzeichen oder Sonderzeichen enthält.
- Wenn Sie eine AssignMessage-/JavaScript-Richtlinie verwenden, um den Hostnamen des Zielservers dynamisch zu generieren, untersuchen Sie die Richtliniendefinition und den Code und sorgen Sie dafür, dass der Hostname des Zielservers korrekt generiert wird.
Fehler beim SSL-Handshake
Ein ganzes Playbook zur Fehlerbehebung ist TLS/SSL-Handshake-Fehlern gewidmet. Weitere Informationen finden Sie unter SSL-Handshake-Fehler.
Ursache des Problems ermitteln
Bestimmte Fehlertypen können entweder bei der eingehenden (Northbound) oder ausgehenden (Southbound) Verbindung auftreten. Ein eingehender (Northbound-)Fehler tritt zwischen der Clientanwendung und Edge auf. Ein ausgehender (Southbound-)Fehler tritt zwischen Edge und dem Backend-Zielserver auf. Um diese Art von Problemen zu diagnostizieren, müssen Sie zuerst herausfinden, ob der Fehler bei der Nord- oder Südverbindung auftritt.
Northbound- und Southbound-Verbindungen
In Edge kann der Fehler „503 Service Unavailable“ sowohl bei der eingehenden als auch bei der ausgehenden Verbindung auftreten:
- Eingehende (oder nordwärts gerichtete) Verbindung: Die Verbindung zwischen der Clientanwendung und dem Edge-Router. Der Router ist die Komponente von Apigee Edge, die eingehende Anfragen an das System verarbeitet.
- Ausgehende (oder Southbound-)Verbindung: Die Verbindung zwischen dem Edge-Message Processor und dem Backend-Server. Der Message Processor ist eine Komponente von Apigee Edge, die API-Anfragen an Backend-Zielserver weiterleitet.
Wenn Sie Edge Public Cloud verwenden, sind Ihnen interne Komponenten wie der Router oder der Message Processor wahrscheinlich nicht bekannt. Diese internen Komponenten sind für Nutzer der Public Cloud nicht sichtbar oder zugänglich. Wenn möglich, bieten wir alternative Möglichkeiten zur Untersuchung des Problems an, die keinen direkten Zugriff auf diese Komponenten erfordern.
Die folgende Abbildung zeigt Northbound- und Southbound-Verbindungen für Apigee Edge.

Ermitteln, wo der Fehler „503 Service Unavailable“ aufgetreten ist
Verwenden Sie eines der folgenden Verfahren, um festzustellen, ob der Fehler „503 Service Unavailable“ bei der Nord- oder Südverbindung aufgetreten ist.
UI-Trace
So ermitteln Sie mit UI-Trace, wo der Fehler aufgetreten ist:
- Wenn das Problem weiterhin besteht, aktivieren Sie den UI-Trace für die betroffene API.
- Wenn der UI-Trace für die fehlgeschlagene API-Anfrage zeigt, dass der Fehler „503 Service Unavailable“ während des Zielanfrageflusses auftritt oder vom Backend-Server gesendet wird, liegt das Problem in Richtung Süden (d. h. zwischen dem Message Processor und dem Backend-Server).
- Wenn Sie den Trace für den jeweiligen API-Aufruf nicht erhalten, liegt das Problem in Richtung Norden, also zwischen der Clientanwendung und dem Router.
API-Monitoring
Mit API-Monitoring können Sie Problembereiche schnell isolieren, um Fehler-, Leistungs- und Latenzprobleme sowie deren Quelle zu diagnostizieren, z. B. Entwickler-Apps, API-Proxys, Back-End-Ziele oder die API-Plattform.
Beispielszenario durchgehen, in dem gezeigt wird, wie Sie 5xx-Probleme mit Ihren APIs mithilfe von API Monitoring beheben.
Sie können beispielsweise eine Benachrichtigung einrichten, um benachrichtigt zu werden, wenn die Anzahl der messaging.adaptors.http.flow.ServiceUnavailable-Fehler einen bestimmten Grenzwert überschreitet.
NGINX-Zugriffslogs
So ermitteln Sie mit UI-Trace, wo der Fehler aufgetreten ist:
Wenn das Problem in der Vergangenheit aufgetreten ist oder wenn es sich um ein nur gelegentlich auftretendes Problem handelt und Sie den Trace nicht erfassen können, führen Sie die folgenden Schritte aus:
- Prüfen Sie die NGINX-Zugriffslogs (
/opt/apigee/var/log/edge-router/nginx/ org-env.port_access_log). - Suchen Sie nach 503-Fehlern für einen bestimmten API-Proxy.
- Wenn Sie für die betreffende API zu diesem Zeitpunkt 503-Fehler finden, ist das Problem bei der Southbound-Verbindung (zwischen dem Message Processor und dem Backend-Server) aufgetreten.
- Wenn nicht, ist das Problem bei der Northbound-Verbindung (zwischen der Clientanwendung und dem Router) aufgetreten.