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:
- 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
- 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 auf dem Backend ein
- 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 auf dem Backend ein
- 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.
- Wenn in der Meldung
- Wenn die Ergebnisse
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.