Bei NSX 6.1.5 und höher ändert sich beim Aktivieren von „x-forwarded-for“ der HTTP-Verbindungsmodus von „Passiv schließen“ (Option „httpclose“) in den Standard-HTTP-Modus „Server schließen“ (http-server-close). Dadurch bleibt die Clientverbindung offen, während die Verbindung mit Serverkontakt nach dem Empfang einer Antwort vom Server geschlossen wird. Vor NSX 6.1.5 beendete der NSX-Lastausgleichsdienst die Verbindung nicht proaktiv, sondern fügte die Kopfzeile „Connection:close“ in beide Richtungen ein, um die Verbindung durch den Client oder Server zu schließen. Wenn eine HTTP/HTTPS-Transaktion beim NSX-Lastausgleichsdienst nach dem Upgrade auf NSX 6.1.5 oder später fehlschlägt, fügen Sie eine Anwendungsregel mit der Skriptoption „httpclose“ hinzu und ordnen Sie sie dem virtuellen Server zu, der nicht mehr ausgeführt wird.

HTTP-Server schließen (Standard) – Die Verbindung mit Serverkontakt wird beendet, nachdem das Ende der Antwort empfangen wurde, und die Verbindung mit Clientkontakt bleibt offen. „HTTP-Server schließen“ bietet Latenz auf Clientseite (langsames Netzwerk) und Wiederverwendung der schnellsten Sitzung auf Serverseite, um weniger Serverressourcen in Anspruch zu nehmen. Sie ermöglicht außerdem, dass nicht-keep-alive-fähige Server mit Hinblick auf den Client im Keep-alive-Modus bedient werden. Dieser Modus eignet sich für die am häufigsten auftretenden Anwendungsfälle, insbesondere für langsame Netzwerke mit Clientkontakt und schnelle Netzwerke mit Serverkontakt.

HTTP-Keep-alive – Alle Anforderungen und Antworten werden verarbeitet und Verbindungen bleiben offen, aber zwischen Antworten und neuen Anfragen im Leerlauf. Reduzierte Latenz zwischen Transaktionen und weniger erforderliche Verarbeitungsleistung auf Serverseite sind die Vorteile. Beachten Sie, dass die Anforderungen an den Arbeitsspeicher erhöht werden, um die Anzahl der aktiven Sitzungen aufzunehmen, die steigt, da Verbindungen nicht mehr nach jeder Anforderung geschlossen werden. Zeitüberschreitung bei Leerlauf mit Clientkontakt kann über die Anwendungsregel „timeout http-keep-alive [time]“ konfiguriert werden. Standardmäßig beträgt die Leerlaufzeitüberschreitung 1 Sekunde. Dieser Modus ist zwingend erforderlich, wenn für eine Anwendung NTLM-Authentifizierung erforderlich ist.

HTTP-Tunnel – Nur die erste Anforderung und Antwort werden verarbeitet und es wird ein Tunnel zwischen Client und Server hergestellt, um die Kommunikation ohne weitere Analyse des HTTP-Protokolls zu ermöglichen. Sobald die Verbindung eingerichtet ist, ist sie sowohl auf Client- als auch Serverseite persistent. Zum Aktivieren dieses Modus sollte keine der folgenden Optionen festgelegt werden: „Passiv schließen“, „Server schließen“, „Schließen erzwingen“.

Der HTTP-Tunnelmodus hat Auswirkungen auf die folgenden Funktionen und betrifft nur die erste Anforderung und Antwort in einer Sitzung:

  • Keine Protokollerstellung

  • HTTP-Kopfzeilenanalyse

  • HTTP-Kopfzeilenmanipulation

  • Cookieverarbeitung

  • Inhaltswechsel

  • Einfügen der Kopfzeile „X-Forwarded-For“

HTTP passiv schließen – Wie Tunnelmodus, aber mit Kopfzeile „Connection: close“ sowohl in der Client- als auch der Serverrichtung Beide Enden werden geschlossen, nachdem die erste Anforderung und Antwort ausgetauscht wurden. Wenn „option httpclose“ festgelegt ist, wird der NSX-Lastausgleichsdienst im HTTP-Tunnelmodus ausgeführt und überprüft, ob die Kopfzeile „Connection: close“ in beiden Richtungen vorhanden ist. Wenn die Kopfzeile nicht vorhanden ist, wird eine „Connection: close“-Kopfzeile hinzugefügt. An beiden Enden wird dann aktiv die TCP-Verbindung nach jeder Übertragung geschlossen, sodass in den HTTP-Schließen-Modus gewechselt wird. Kopfzeilen von Verbindungen, die nicht „Schließen“ lauten, werden entfernt. Anwendungen, die die zweite sowie nachfolgende Anforderungen nicht ordnungsgemäß verarbeiten können (z. B. ein eingefügtes Cookie durch den NSX-Lastausgleichsdienst, das dann durch die folgenden Clientanfragen zurückübertragen wird), können den Tunnel- oder Passiv-schließen-Modus verwenden.

Einige HTTP-Server schließen nicht notwendigerweise die Verbindungen, wenn sie „Connection: close“ wie durch „option httpclose“ festgelegt erhalten. Wenn der Client auch nicht geschlossen wird, bleibt die Verbindung offen, bis die Zeitüberschreitung eintritt. Dies führt zu einer großen Anzahl simultaner Verbindungen auf den Servern und langen globalen Sitzungszeiten in den Protokollen. Aus diesem Grund sind sie nicht mit älteren HTTP-1.0-Browsern kompatibel. Falls dies passiert, verwenden Sie „option forceclose“, wodurch die Anforderungsverbindung aktiv geschlossen wird, nachdem der Server antwortet. Durch die Option „forceclose“ wird außerdem die Serververbindung früher geschlossen, da nicht auf die Bestätigung des Clients gewartet werden muss.

HTTP-schließen erzwingen – Sowohl Client als auch Serververbindungen werden am Ende einer Antwort aktiv vom NSX-Lastausgleichsdienst geschlossen. Einige HTTP-Server schließen nicht notwendigerweise die Verbindungen, wenn sie „Connection: close“ wie durch „option httpclose“ festgelegt erhalten. Wenn der Client auch nicht geschlossen wird, bleibt die Verbindung offen, bis die Zeitüberschreitung eintritt. Dies führt zu einer großen Anzahl simultaner Verbindungen auf den Servern und langen globalen Sitzungszeiten in den Protokollen. In diesem Fall schließt „option forceclose“ aktiv den ausgehenden Serverkanal, sobald der Server die Antwort abgeschlossen hat. So werden einige Ressourcen früher freigegeben als mit „option httpclose“.

NSX

Standardverbindungsmodus

Verbindungsmodus bei aktiviertem „X-Forwarded-For“

Verfügbare Anwendungsregeln zum Wechsel des Verbindungsmodus

6.0.x, 6.1.0, 6.1.1

HTTP-Server schließen

„option httpclose“ wird dem virtuellen Server automatisch hinzugefügt, um das Hinzufügen von XFF zu jeder Anforderung wie im HAProxy-Dokument angegeben zu erzwingen. Die XFF-Kopfzeile wird jeder Anforderung vom Client bei der Übergabe an einen Backendserver hinzugefügt.

Nein

6.1.2–6.1.4

HTTP-Server schließen

HTTP passiv schließen („option httpclose“ wird dem virtuellen Server automatisch hinzugefügt)

„no option http-server-close“

„option httpclose“

„no option httpclose“

6.1.5–6.1.x, 6.2.0–6.2.2

HTTP-Server schließen

Die XFF-Kopfzeile „HTTP-Server schließen“ wird jeder Anforderung vom Client bei der Übergabe an einen Backendserver hinzugefügt.

„no option http-server-close“

„option httpclose“

„no option httpclose“

6.2.3–6.2.5

HTTP-Server schließen

Die XFF-Kopfzeile „HTTP-Server schließen“ wird jeder Anforderung vom Client bei der Übergabe an einen Backendserver hinzugefügt.

„no option http-server-close“

„option httpclose“

„no option httpclose“

6.2.3–6.2.5

HTTP-Server schließen

Die XFF-Kopfzeile „HTTP-Server schließen“ wird jeder Anforderung vom Client bei der Übergabe an einen Backendserver hinzugefügt.

„no option http-server-close“

„no option httpclose“

„option httpclose“

6.2.5–6.2.x

HTTP-Server schließen

Die XFF-Kopfzeile „HTTP-Server schließen“ wird jeder Anforderung vom Client bei der Übergabe an einen Backendserver hinzugefügt.

„no option http-server-close“

„option http-keep-alive“

„option http-tunnel“

„option httpclose“

„option forceclose“