Fehlerbehebung bei HTTP-Problemen für Load Balancer

Informationen zu HTTP-Problemen im Zusammenhang mit Load Balancern.

HTTP 400: Bad Request Header or Cookie

Eine mögliche Lösung besteht darin, die Headergröße der HTTP-Anforderung auf dem Load Balancer zu erhöhen. Standardmäßig liegt der Grenzwert bei 8 KB. Wenn Sie ihn jedoch auf 64 KB erhöhen, wird das Problem behoben. Diese Lösung wird nur für HTTP unterstützt. Sie können eine Regel zur Erhöhung der HTTP-Headergröße erstellen, um den Fehler zu beheben. Außerdem gibt es eine Regel für die Verarbeitung von Sonderzeichen im Headernamen, die zu ähnlichen Fehlern führen kann.

Weitere Informationen finden Sie unter HTTP-Headerregeln.

HTTP 502: Bad Gateway

Neben Monitoring und Management können Sie mit Load-Balancing-Logging Probleme mit Ihrer Load-Balancer-Infrastruktur identifizieren, isolieren und beheben. Die folgende Prozedur veranschaulicht die Behebung eines Fehlers 502 Bad Gateway, der beim Deployment der neuen Webanwendung example.com aufgetreten ist. Im Beispiel wird ein öffentlicher Oracle Cloud Infrastructure Load Balancer als Frontend in einer Entwicklungsumgebung verwendet. Die Aufgabe ist nicht erfolgreich und gibt im Browser einen Fehler502 Bad Gateway zurück. Verwenden Sie die Load Balancer-Zugriffs- und Fehlerlogs, um das Problem wie folgt zu beheben:

  1. Prüfen Sie den Fehler mit dem Utility curl wie folgt:
    curl -v http://example.com
    > GET / HTTP/1.1
    > Host: 192.0.2.99
    > User-Agent: curl/7.54.0
    > Accept: */*
    >
    < HTTP/1.1 502 Bad Gateway
    < Content-Type: text/html
    < Content-Length: 161
    < Connection: keep-alive
  2. Suchen Sie in den Zugriffs- und Fehlerlogs des Load Balancers nach "lbStatusCode" und "backendStatusCode".
    • Wenn die Ergebnisse backendStatusCode: 502 enthalten, gilt Folgendes:

      Mögliche Ursachen:

      • Das Problem ist ein falsch konfiguriertes Backend.
      • Das Backend ist wahrscheinlich ein weiterer Reverse-Proxy oder LB.

      Mögliche Lösungen:

      • Prüfen Sie die Upstreamproxylogs, um festzustellen, warum der 502-Fehler zurückgegeben wird.
      • Lösen Sie alle Probleme auf dem letzten Backend, die dazu führen, dass der Upstreamproxy einen 502-Fehler zurückgibt.
    • Wenn die Ergebnisse backendStatusCode: 504 enthalten, gilt Folgendes:

      Mögliche Ursachen:

      • Wenn auf dem Backend ein 504-Fehler auftritt, weist dies normalerweise darauf hin, dass das Backend eine weitere Proxy- oder Load-Balancer-Serviceinstanz ist. Der Fehler tritt in der Regel dann auf, wenn ein Proxy innerhalb eines bestimmten Zeitraums keine Verbindung zu einem Upstreamserver herstellen kann.
      • Prüfen Sie die Logs des Upstreamsystems, um festzustellen, welches Problem den Upstreamproxy daran hindert, eine Verbindung zum Backend herzustellen.

      Mögliche Lösungen:

      • Erhöhen Sie die Zeit für den Verbindungstimeout.
      • Verwenden Sie ein Utility wie tcpdump und integrierte Anwendungstools, um zu bestimmen, warum die Antwortzeit des Backends länger als üblich ist.
    • Wenn die Ergebnisse backendStatusCode: 500 enthalten, gilt Folgendes:
      Mögliche Ursachen:
      • Wenn auf dem Backend ein 500-Fehler auftritt, weist dies in der Regel auf einen serverseitigen Fehler hin, der auch als "interner Serverfehler" bezeichnet wird. In der Regel wird dieser Fehler von Backend-Anwendungen verursacht.
      • Es kann keine Verbindung zu Upstreamressourcen wie Datenbanken, APIs und Services hergestellt werden.

      Mögliche Lösungen:

      Beheben Sie das Problem auf Anwendungsebene, das den Fehler verursacht.

    • Wenn die Ergebnisse backendStatusCode: ohne Fehlercode enthalten, gilt Folgendes:
      • Wenn in der Meldung lbStatusCode: 502 kein Backend-Serverstatuscode angegeben ist, ist in der Regel kein Backend-Server zum Senden der Verbindungen verfügbar.
      • Möglicherweise wird in den Load-Balancer-Fehlerlogs auch eine Meldung No healthy backends available in associated backendSet angezeigt.
      • Stellen Sie sicher, dass die Backends fehlerfrei sind. Wenn die Backends fehlerfrei sind, prüfen Sie, ob der Health Check ordnungsgemäß konfiguriert ist.

HTTP 504

Der HTTP-504-Fehler zeigt in der Regel an, dass der Backend-Server als ein anderer Proxy oder als Load-Balancer-Serviceinstanz verwendet wird. Dieser Fehler tritt in der Regel auf, wenn ein Proxy innerhalb eines bestimmten Zeitraums keine Verbindung zu einem Upstreamserver herstellen kann. Prüfen Sie die Logs des Upstreamsystems, um festzustellen, welches Problem den Upstreamproxy daran hindert, eine Verbindung zum Backend-Server herzustellen.

Folgende Lösungen sind möglich:

  • Erhöhen Sie den Zeitraum für das Verbindungstimeout.

  • Verwenden Sie ein Utility wie "tcpdump" und integrierte Anwendungstools, um zu bestimmen, warum die Antwortzeit des Backend-Servers länger als üblich ist.

Weitere Informationen finden Sie unter HTTP 502: Bad Gateway.