503 Dienst nicht verfügbar – Back-End-Server

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

Videos

Sehen Sie sich das folgende Video an, um mehr über das Beheben von 503-Fehlern des Dienstes „Nicht verfügbar“ zu erfahren.

Video Beschreibung
<ph type="x-smartling-placeholder"></ph> 503 Fehler „Dienst nicht verfügbar“ vom Backend-Server Hier finden Sie Informationen zu folgenden Themen: <ph type="x-smartling-placeholder">
    </ph>
  • Einführung in den Fehler 503 „Dienst nicht verfügbar“ in Apigee Edge
  • Fehlerbehebung bei einem 503-Dienst "Nicht verfügbar" in Echtzeit ab Backend-Server

Symptom

Die Clientanwendung empfängt einen HTTP-Antwortstatus. 503 mit der Meldung Service Unavailable (Dienst nicht verfügbar) einen API-Proxy-Aufruf.

Fehlermeldungen

Es wird eine der folgenden Fehlermeldungen angezeigt:

HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity

Möglicherweise wird auch eine Fehlermeldung wie die folgende angezeigt in der HTTP-Antwort:

The server is temporarily unable to service your request due to
maintenance downtime or capacity problems. Please try again later.

Hinweis:Der Antwortcode und die Fehlermeldung oben sind nur Beispiele. In einigen Fällen wird möglicherweise nur der Fehlerantwortcode ohne Fehlermeldung angezeigt. Das Format und der Inhalt des Fehlerantwortcodes und der Fehlermeldung können je nach Back-End-Server-Implementierung.

Ursachen

Der HTTP-Statuscode 503 bedeutet, dass der Server derzeit eingehende E-Mails -Anfragen. Normalerweise tritt dieser Fehler auf, weil der Server überlastet ist oder vorübergehend nicht verfügbar sind.

Mögliche Ursachen für die Antwort 503 Service Unavailable sind:

Ursache Beschreibung Wer kann die Schritte zur Fehlerbehebung durchführen?
Server mit Überlastung Der Backend-Server ist überlastet oder hat seine Kapazität überschritten und kann keine neuen eingehende Clientanfragen. Edge-Nutzer von öffentlichen und privaten Clouds
Server wird gewartet Der Backend-Server wird möglicherweise vorübergehend gewartet. Edge-Nutzer von öffentlichen und privaten Clouds

Ursache: Server/Server wird gewartet

In Apigee Edge kann der Fehler 503 Service Nicht verfügbar von einem Back-End-Server zurückgegeben werden. in einem der folgenden Fälle:

  • Ein Backend-Server ist überlastet/beschäftigt und kann keine neuen Anfragen verarbeiten.
  • Der Backend-Server ist aufgrund von Wartungsarbeiten vorübergehend nicht verfügbar.

Diagnose

Zur Diagnose des Fehlers können Sie eine der folgenden drei Methoden verwenden:

  • Trace-Tool
  • NGINX-Zugriffslogs
  • Direkter Aufruf an Backend-Server

Klicken Sie auf die Tabs unten, um mehr über die einzelnen Methoden zu erfahren.

Trace-Tool

  1. Aktivieren Sie die Trace-Sitzung. und führen Sie den API-Aufruf aus, um das Problem zu reproduzieren – „503 Service Unavailable“.
  2. Wählen Sie eine der fehlgeschlagenen Anfragen aus und prüfen Sie den Trace.
  3. Durchlaufen Sie die verschiedenen Phasen des Trace und finden Sie heraus, wo der Fehler aufgetreten ist.
  4. Wenn Sie feststellen, dass der Fehler 503 als Antwort vom Zielserver zurückgegeben wird, Die Ursache für den Fehler 503 ist der Zielserver.

    Hier ist ein Beispiel-Trace-Screenshot mit dem Fehler „503 Service Unavailable“-Antwort. vom Zielserver:

  5. Klicken Sie auf die Phase Antwort vom Zielserver erhalten und durchlaufen Sie die In den Abschnitten zu den Antwortheadern und dem Antwortinhalt können Sie nachsehen, ob sie nützliche Informationen enthalten: <ph type="x-smartling-placeholder">
      </ph>
    • Die Antwortheader können den Server-Header enthalten, der angibt, woher die Fehlerantwort gesendet wurde.
    • Der Antwortinhalt kann zusätzliche Informationen dazu enthalten, warum hat der Zielserver den Antwortcode 503 gesendet.
  6. Prüfen Sie, ob der Fehler 503 vom Zielserver stammt. Prüfen Sie dazu die Werte von X-Apigee-fault-source und X-Apigee-fault-source in X-Apigee-fault-source (Aufzeichnung von Analytics-Daten) Phase im Trace mit den folgenden Schritten: <ph type="x-smartling-placeholder">
      </ph>
    1. Klicken Sie auf die Phase AX (Analytics Data Recorded), wie im folgenden Screenshot dargestellt:
    2. Scrollen Sie in den Phasendetails zum Abschnitt Response Headers (Antwortheader) und legen Sie die Werte fest. von X-Apigee-fault-code und X-Apigee-fault-code, wie unten gezeigt:
    3. Wenn die Werte von X-Apigee-fault-source und X-Apigee-fault-source mit den Werten übereinstimmen, können Sie bestätigen, dass der 503-Fehler vom Zielserver:
      Antwortheader Wert
      X-Apigee-fault-source Ziel
      X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
  7. Prüfen Sie, ob Sie Proxy-Verkettung verwenden, d.h., ob der Zielserver/Zielendpunkt Einen anderen Proxy in Apigee aufrufen Dazu gehen Sie so vor: <ph type="x-smartling-placeholder">
      </ph>
    1. Gehen Sie zurück zur Phase Anfrage an Zielserver gesendet und klicken Sie auf die Schaltfläche Curl anzeigen und bestimmen Sie den Hostalias des Zielservers.
    2. Wenn der Hostalias des Zielservers auf einen Alias des virtuellen Hosts verweist, ist es Proxy-Verkettung. In diesem Fall müssen Sie alle oben genannten Schritte für die verwenden, bis Sie feststellen, was den Fehler 503 Service Unavailable (Dienst nicht verfügbar) verursacht. In diesen Fällen kann 503 Service Unavailable (Dienst nicht verfügbar) auch in anderen verketteten Proxys an anderen Phasen, die mithilfe von in diesem Playbook erfahren.
    3. Wenn der Hostalias des Zielservers auf Ihren Backend-Server verweist, gehen Sie zu Lösung.

NGINX-Zugriffslogs

Sie können auch anhand der NGINX-Klickprotokolle feststellen, ob der Statuscode 503 gesendet wurde. durch den Back-End-Server. Dies ist besonders nützlich, wenn das Problem in der Vergangenheit aufgetreten ist. oder wenn das Problem zeitweise auftritt und Sie den Trace nicht in der Benutzeroberfläche erfassen können. Führen Sie die folgenden Schritte aus, um diese Informationen aus den NGINX-Zugriffslogs zu ermitteln:

  1. Prüfen Sie die NGINX-Zugriffslogs.
    /opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
  2. Suche nach 503-Fehlern für den spezifischen API-Proxy während eines bestimmten Zeitraums (wenn das Problem in der Vergangenheit aufgetreten ist) oder für Anfragen, bei denen der Fehler 503 angezeigt wird.
  3. Falls 503-Fehler vorliegen, prüfen Sie, ob der Fehler vom Back-End-Server stammt. Wenn die Werte von X-Apigee-fault-source und X-Apigee-fault-source mit den angezeigte Werte In der folgenden Tabelle stammt der Fehler 503 vom Back-End-Server:
    Antwortheader Wert
    X-Apigee-fault-source Ziel
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode

    Hier sehen Sie einen Beispieleintrag mit dem vom Zielserver ausgelösten Fehler 503:

  4. Überprüfen Sie den spezifischen API-Proxy und stellen Sie sicher, dass Sie den Proxy-Verkettung d.h. wenn das Zielserver/Zielendpunkt ruft keinen anderen Proxy in Apigee auf. Wenn Sie Proxy-Verkettung müssen Sie alle oben genannten Schritte für den verketteten Proxy wiederholen, bis ermitteln Sie, was den Fehler 503 Service Unavailable (Dienst nicht verfügbar) verursacht. In diesen Fällen 503 Service Unavailable (Dienst nicht verfügbar) kann auch in anderen verketteten Proxys auftreten. die Sie mit diesem Playbook diagnostizieren können.
  5. Wenn Sie bestätigen, dass Sie keine Proxy-Verkettung verwenden, und der Fehler 503 von Ihrer und dann auf Lösung.

Aufruf an Backend-Server

Sie können den Backend-Server direkt aufrufen und prüfen, 503-Antwort „Dienst nicht verfügbar“, wie beim Eingang der Anfrage über Apigee Edge empfangen.

  1. Vergewissern Sie sich, dass Sie alle erforderlichen Header, Abfrageparameter und Anmeldedaten haben, als Teil der Anfrage an den Back-End-Server übergeben werden.
  2. Wenn der Back-End-Dienst öffentlich zugänglich ist, können Sie den Befehl curl verwenden, Postman oder einen anderen REST-Client verwenden und die Back-End-Server-API direkt aufrufen.
  3. Wenn der Backend-Server nur über die Message Processors erreichbar ist, kannst du die Methode curl-Befehl, Postman oder einen anderen REST-Client und rufen Sie die Back-End-Server-API direkt auf vom Message Processor.
  4. Überprüfen Sie, ob der Back-End-Dienst tatsächlich den Fehler 503 Service Unavailable (Dienst nicht verfügbar) zurückgibt.

Auflösung

Wenn Sie feststellen, dass der Fehler 503 vom Back-End-Server stammt, können Sie um das Problem zu beheben:

  • Wenn das Problem dadurch verursacht wird, dass der Backend-Server wegen Wartungsarbeiten nicht verfügbar ist, können Sie den Back-End-Server nach dem Wartungszeitraum online schalten.
  • Wenn das Problem dadurch verursacht wird, dass der Backend-Server überlastet ist, wenn Sie Zugriff auf den Backend-Server haben. Andernfalls müssen Sie sich möglicherweise an Ihr Backend-Server-Team wenden, um das Problem zu beheben.

Probleme mithilfe von API-Überwachung diagnostizieren

Mit API-Monitoring können Sie Problembereiche schnell zu diagnostizieren, um Fehler, Leistung, und Latenzprobleme und deren Quelle, wie Entwickler-Apps, API-Proxys, Back-End-Ziele, oder die API-Plattform.

Schritt durch ein Beispiel Szenario, in dem die Behebung von 5xx-Problemen mit Ihren APIs veranschaulicht wird mit API-Monitoring. Beispielsweise können Sie festlegen, dass Sie benachrichtigt werden, wenn die Nummer von messages.adaptors.http.flow.ErrorResponseCode-Fehlern überschreitet einen bestimmten Schwellenwert.

Erfassen von Diagnoseinformationen erforderlich

Wenn das Problem trotz Befolgung der obigen Anleitung weiterhin besteht, Diagnoseinformationen folgen und sich dann an Apigee-Support

Wenn Sie eine öffentliche Cloud nutzen, geben Sie die folgenden Informationen an:

  • Name der Organisation
  • Name der Umgebung
  • API-Proxy-Name
  • Führen Sie den curl-Befehl aus, um den Fehler 503 zu reproduzieren.
  • Ablaufverfolgungsdatei mit den Anfragen mit dem Fehler 503 Service Unavailable
  • Wenn die 503-Fehler derzeit nicht auftreten, geben Sie den Zeitraum mit Zeitzone an wenn 503-Fehler in der Vergangenheit aufgetreten sind.

Wenn Sie eine private Cloud nutzen, geben Sie die folgenden Informationen an:

  • Vollständige Fehlermeldung für fehlgeschlagene Anfragen.
  • Organisation, Umgebungsname und API-Proxy-Name, bei denen Sie 503-Fehler beobachten.
  • API-Proxy-Bundle.
  • Ablaufverfolgungsdatei mit den Anfragen mit dem Fehler 503 Dienst nicht verfügbar.
  • NGINX-Zugriffslogs.
    /opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
  • Message Processor-Logs.
    /opt/apigee/var/log/edge-message-processor/logs/system.log
  • Der Zeitraum mit den Zeitzoneninformationen, in dem die 503-Fehler aufgetreten sind.