Migration zum globalen externen Application Load Balancer planen

Wenn Sie bereits den klassischen Application Load Balancer verwenden, lesen Sie diese Seite, wenn Sie die Migration zum globalen externen Application Load Balancer oder eine neue Bereitstellung mit dem globalen externen Application Load Balancer planen.

Funktionsunterschiede

Die folgenden Features werden vom globalen externen Application Load Balancer nicht unterstützt. Sie sind nur mit dem klassischen Application Load Balancer verfügbar:

Unterschiede der Datenebene

In der folgenden Tabelle werden die Unterschiede in der Datenebene zwischen dem klassischen Application Load Balancerr und dem globalen externen Application Load Balancer hervorgehoben. Diese Unterschiede wirken sich darauf aus, wie die Load-Balancer auf einige häufige Ereignisse reagieren.

Ereignis Antwort des klassischen Application Load Balancers Antwort des globalen externen Application Load Balancers
Status/Fehlercodes
Alle Back-Ends sind fehlerhaft Gibt HTTP 502 zurück Gibt HTTP 503 zurück
Anfrage verwendet eine gesperrte SSL-Chiffre Gibt HTTP 502 zurück Gibt HTTP 503 zurück
Frühe Upstream-Verbindung wurde vom Backend zurückgesetzt Gibt HTTP 502 zurück Gibt HTTP 503 zurück
Fehler beim Verbindungsupgrade (z. B. beim Upgrade auf WebSockets) Gibt HTTP 400 zurück Gibt HTTP 403 zurück
Header ist zu groß Gibt HTTP 413 zurück Gibt HTTP 431 zurück
Kontingente und Limits
Konfiguration der URL-Zuordnung Die Konfigurationslimits für die URL-Zuordnung unterscheiden sich erheblich zwischen den beiden Load Balancern. Weitere Informationen finden Sie in der Dokumentation Kontingente: URL-Zuordnungen.
Header-Verarbeitung
Anfrage verwendet eine benutzerdefinierte HTTP-Methode ohne Text Fügt den Header Transfer Encoding: Chunked der Anfrage hinzu, die an das Backend gesendet wird Fügt den Header Content-Length: 0 der Anfrage hinzu, die an das Backend gesendet wird
Format des X-Forwarded-For-Headers, wird der Anfrage hinzugefügt, die an das Backend gesendet wird Verwendet das Trennzeichen „, “ zwischen IP-Adressen Verwendet das Trennzeichen „,“ zwischen IP-Adressen (kein Leerzeichen nach dem Komma)
Beibehaltung der Header-Schreibweise Header-Schreibweise wird beibehalten Alle Headerschlüssel werden in Kleinbuchstaben umgewandelt.
Wiederkehrende Header mit demselben Namen Zugelassen Wiederkehrende Header können wie in RFC 7230 zugelassen in einem einzigen Header kombiniert werden, in dem die Werte in der richtigen Reihenfolge angehängt und durch Kommas getrennt sind.
(Nur HTTP/1.1) Ungültiger Header-Name (z. B. nicht unterstützte Zeichen im Header) Zulässig (für HTTP/1.1) Gibt HTTP 502 zurück (für HTTP/1.1)
(Nur HTTP/1.1) Wiederholter (aber derselbe) Content-Length-Header in der Anfrage Zulässig (für HTTP/1.1) Gibt HTTP 502 zurück (für HTTP/1.1)
(Nur HTTP/1.1) Mehrere Hosts im Header Wenn zwei oder mehr Hosts hinzugefügt werden und der erste gültig ist, wird der Header akzeptiert Wenn zwei oder mehr Hosts hinzugefügt werden und einige sind ungültig sind, gibt der Load-Balancer HTTP 502 zurück
(Nur HTTP/1.1) Connection: Keep-Alive-Header Fügt Keep-Alive header den Anfragen hinzu, die standardmäßig an das Backend gesendet werden Fügt diesen Header nicht standardmäßig hinzu
Anfragen verarbeiten
Rückschrägstriche in der Anfrage URL bleibt unverändert Umwandlung in Schrägstriche
Doppelte Schrägstriche in Anfrage zusammenführen Schrägstriche werden nicht zusammengeführt Schrägstriche werden zusammengeführt
„#“ im Anfragepfad Zulässig Gibt HTTP 400 zurück
(Nur HTTP/1.1) Unzulässige Zeichen im Anfragepfad (z. B. „\\x7f\\x7f“) Zulässig (für HTTP/1.1) Gibt HTTP 502 zurück (für HTTP/1.1)
Traffic-Verteilung (URL-Zuordnungskonfiguration)
Clientanfrage enthält eine Portnummer Die Portnummer wird auch dann ignoriert, wenn Sie Hosts mit Ports in der URL-Zuordnung konfiguriert haben. Es wird nur der Hostname berücksichtigt.
Beispiel: Anfragen für example.com:5000 werden dem Backend-Dienst für example.com zugeordnet.
Sowohl der Hostname als auch die Portnummer werden berücksichtigt.
Beispiel: Anfragen für example.com:5000 werden dem Backend-Dienst für example.com:5000 zugeordnet. Wenn es keine Übereinstimmung gibt, wird der Standard-Backend-Dienst verwendet.