HTTP/2-Konfiguration

Hinweis: Die HTTP/2-Funktionalität wird von Citrix ADC MPX-, VPX- und SDX-Modellen unterstützt. In einer Citrix ADC VPX Appliance wird die HTTP/2-Funktionalität ab Version 11.0 unterstützt.

Das Problem mit der Leistung von Webanwendungen hängt direkt mit dem Trend zur Erhöhung der Seitengröße und der Anzahl der Objekte auf den Webseiten zusammen. HTTP/1.1 wurde entwickelt, um kleinere Webseiten, langsamere Internetverbindungen und eingeschränktere Serverhardware zu unterstützen, als es heute üblich ist. Es ist nicht geeignet für neue Technologien wie JavaScript und Cascading Stylesheets (CSS) oder neue Medientypen wie Flash-Videos und grafikreiche Bilder. Dies liegt daran, dass es nur eine Ressource pro Verbindung zum Server anfordern kann. Die Einschränkung erhöht die Anzahl der Roundtrips erheblich, was zu längerem Seitenrendern und reduzierter Netzwerkleistung führt.

Das HTTP/2-Protokoll behebt diese Einschränkungen, indem es die Kommunikation mit weniger Daten ermöglicht, die über das Netzwerk übertragen werden, und bietet die Möglichkeit, mehrere Anfragen und Antworten über eine einzige Verbindung zu senden. Im Kern behandelt HTTP/2 die wichtigsten Einschränkungen von HTTP/1.1, indem die zugrunde liegenden Netzwerkverbindungen effizienter verwendet werden. Es ändert die Art und Weise, wie Anfragen und Antworten über das Netzwerk übertragen werden.

HTTP/2 ist ein binäres Protokoll. Es ist effizienter zu analysieren, kompakter auf dem Kabel und vor allem weniger fehleranfällig im Vergleich zu Textprotokollen wie HTTP/1.1. Das HTTP/2-Protokoll verwendet einen binären Framing-Layer, der den Frame-Typ und die Art und Weise definiert, wie HTTP-Nachrichten gekapselt und zwischen Client und Server übertragen werden. HTTP/2-Funktionalität unterstützt die Verwendung der CONNECT-Methode, um eine Tunnelverbindung über einen einzelnen HTTP/2-Stream zu einem Remotehost herzustellen.

Das HTTP/2-Protokoll enthält viele leistungssteigernde Änderungen, die die Leistung erheblich verbessern, insbesondere für Clients, die über ein Mobilfunknetz verbinden.

In der folgenden Tabelle sind die wichtigsten Verbesserungen in HTTP/2 gegenüber HTTP/1.1 aufgeführt:

HTTP/2-Funktionen Beschreibung
Kopfzeilenkomprimierung HTTP-Header haben viele sich wiederholende Informationen und verbrauchen daher unnötige Bandbreite während der Datenübertragung. HTTP/2 reduziert die Bandbreitenanforderungen, indem der Header komprimiert und die Anforderung minimiert wird, HTTP-Header mit jeder Anforderung und Antwort zu transportieren.
Verbindungs-Multiplexing Latenz kann einen großen Einfluss auf die Ladezeiten der Seite und die Endbenutzererfahrung haben. Connection Multiplexing überwindet dieses Problem, indem mehrere Anfragen und Antworten über eine einzige Verbindung gesendet werden.
Server-Push Server Push ermöglicht es dem Server, Inhalte proaktiv an den Client-Browser zu übertragen, wodurch Verzögerungen bei der Hin- und Rückfahrt vermieden werden. Diese Funktion speichert die Antworten, die der Client benötigt, reduziert die Anzahl Roundtrips und verbessert die Zeit für die Seitenwiedergabe. Wichtig: Die Citrix ADC Appliance unterstützt die Server-Push-Funktionalität nicht.
Keine Kopf-of-Line-Blockierung Unter HTTP/1.1 können Browser jeweils eine Ressource pro Verbindung herunterladen. Wenn ein Browser eine große Ressource herunterladen muss, blockiert er alle anderen Ressourcen, bis der erste Download abgeschlossen ist. HTTP/2 überwindet dieses Problem mit einem Multiplexing-Ansatz. Es ermöglicht dem Client-Browser, andere Webkomponenten parallel über die gleiche Verbindung herunterzuladen und sie anzuzeigen, sobald sie verfügbar sind.
Priorisierung anfordern Nicht alle Ressourcen haben die gleiche Priorität, wenn der Browser eine Webseite rendert. Um die Ladezeit zu beschleunigen, priorisieren alle modernen Browser Anfragen nach Art des Assets, ihrem Standort auf der Seite und sogar nach gelernter Priorität aus früheren Besuchen. Mit HTTP/1.1 hat der Browser eingeschränkte Fähigkeit, die Prioritätsdaten zu verwenden, da dieses Protokoll kein Multiplexing unterstützt und es keine Möglichkeit gibt, die Anforderungspriorisierung durch den Server zu kommunizieren. Das Ergebnis ist unnötige Netzwerklatenz. HTTP/2 überwindet dieses Problem, indem es dem Browser erlaubt, alle Anfragen zu versenden. Der Browser kann seine bevorzugte Stream-Priorisierung über Stream-Abhängigkeiten und Gewichte kommunizieren, wodurch die Server die Antwortbereitstellung optimieren können. Wichtig: Die Citrix ADC Appliance unterstützt die Anforderungspriorisierungsfunktion nicht.

Funktionsweise von HTTP/2

Eine Citrix ADC Appliance unterstützt HTTP/2 sowohl auf der Clientseite als auch auf der Serverseite. Auf der Clientseite fungiert die Citrix ADC Appliance als Server, der einen virtuellen HTTP/HTTPS-Server für HTTP/2 hostet. Auf der Back-End-Seite fungiert Citrix ADC als Client für die Server, die an den virtuellen Server gebunden sind.

Daher unterhält die Citrix ADC Appliance separate Verbindungen sowohl auf der Clientseite als auch auf der Serverseite. Die Citrix ADC Appliance verfügt über separate HTTP/2-Konfigurationen für die Client- und die Serverseite.

HTTP/2 für HTTPS (SSL) Lastausgleichskonfiguration

Bei einer HTTPS-Lastausgleichskonfiguration verwendet die Citrix ADC Appliance die TLS ALPN-Erweiterung (RFC 7301), um festzustellen, ob der Client/Server HTTP/2 unterstützt. Wenn dies der Fall ist, wählt die Appliance HTTP/2 als Anwendungsschicht-Protokoll, um Daten (wie in RFC 7540 - Abschnitt 3.3 beschrieben) auf Client/Server-Seite zu übertragen. Die Appliance verwendet bei der Auswahl des Protokolls auf der Anwendungsebene über die Erweiterung TLS ALPN die folgende Präferenzreihenfolge:

  • HTTP/2 (wenn im HTTP-Profil aktiviert)
  • SPDY (wenn im HTTP-Profil aktiviert)
  • HTTP/1.1

HTTP/2 für HTTP-Lastausgleichskonfiguration

Bei einer HTTP-Lastausgleichskonfiguration verwendet die Citrix ADC Appliance eine der folgenden Methoden, um mit dem Client/Server über HTTP/2 zu kommunizieren.

Hinweis:

In den folgenden Methodenbeschreibungen sind Client und Server allgemeine Begriffe für eine HTTP/2-Verbindung. Bei einem Lastausgleichs-Setup einer Citrix ADC Appliance mit HTTP/2 fungiert die Citrix ADC-Appliance beispielsweise als Server auf der Clientseite und fungiert als Client auf der Serverseite.

  • HTTP/2-Upgrade. Ein Client sendet eine HTTP/1.1-Anforderung an einen Server. Die Anforderung enthält einen Upgrade-Header, der den Server auffordert, die Verbindung auf HTTP/2 zu aktualisieren. Wenn der Server HTTP/2 unterstützt, akzeptiert der Server die Aktualisierungsanforderung und benachrichtigt ihn in seiner Antwort. Der Client und der Server kommunizieren mit HTTP/2, nachdem der Client die Aktualisierungsbestätigungsantwort erhalten hat.

  • Direktes HTTP/2. Ein Client beginnt direkt mit einem Server in HTTP/2 zu kommunizieren, anstatt die HTTP/2-Upgrade-Methode zu verwenden. Wenn der Server HTTP/2 nicht unterstützt oder nicht für die direkte Annahme von HTTP/2-Anforderungen konfiguriert ist, werden die HTTP/2-Pakete vom Client entfernt. Diese Methode ist hilfreich, wenn der Administrator des Clientgeräts bereits weiß, dass der Server HTTP/2 unterstützt.

  • Direktes HTTP/2 mit Alternativdienst (ALT-SVC). Ein Server gibt bekannt, dass er HTTP/2 an einen Client unterstützt, indem er ein Feld alternativer Dienst (ALT-SVC) in seine HTTP/1.1-Antwort einschließt. Wenn der Client so konfiguriert ist, dass er das ALT-SVC-Feld versteht, beginnen der Client und der Server direkt mit HTTP/2 zu kommunizieren, nachdem der Client die Antwort erhält.

Die Citrix ADC Appliance bietet konfigurierbare Optionen in einem HTTP-Profil für die HTTP/2-Methoden. Diese HTTP/2-Optionen können sowohl auf die Clientseite als auch auf die Serverseite eines HTTPS- oder HTTP-Lastausgleichs angewendet werden. Weitere Informationen zu HTTP/2-Methoden und Optionen finden Sie unter HTTP/2-Optionen (PDF).

Bevor Sie beginnen

Bevor Sie mit der Konfiguration von HTTP/2 auf einer Citrix ADC Appliance beginnen, beachten Sie die folgenden Punkte:

  • Die Citrix ADC Appliance unterstützt HTTP/2 sowohl auf der Clientseite als auch auf der Serverseite.
  • Die Citrix ADC Appliance unterstützt die HTTP/2-Serverpushfunktionalität nicht.
  • Die Citrix ADC Appliance unterstützt die Funktion HTTP/2-Anforderungspriorisierung nicht.
  • Die Citrix ADC Appliance unterstützt HTTP/2 SSL-Neuverhandlungen für HTTPS-Lastausgleichs-Setups nicht.
  • Die Citrix ADC Appliance unterstützt keine HTTP/2-NTLM-Authentifizierung.
  • HTTP/2 funktioniert nicht, wenn der USIP-Modus (User Source IP) aktiviert ist und der Proxymodus auf der Citrix ADC Appliance deaktiviert ist.

Konfigurieren von HTTP/2

Die Konfiguration von HTTP/2 für ein Lastausgleichs-Setup (HTTPS oder HTTP) umfasst folgende Aufgaben:

  • Aktivieren Sie HTTP/2 und setzen Sie optionale HTTP/2-Parameter in einem HTTP-Profil. Aktivieren Sie HTTP/2 in einem HTTP-Profil. Wenn Sie HTTP/2 nur in einem HTTP-Profil aktivieren, verwendet die Citrix ADC Appliance nur die Upgrade-Methode (für HTTP) oder die TLS ALPN-Methode (für HTTPS) für die Kommunikation in HTTP/2.

    Damit die Citrix ADC Appliance die direkte HTTP/2-Methode verwenden kann, muss die Option Direct HTTP/2 im HTTP-Profil aktiviert sein. Damit die Citrix ADC Appliance das direkte HTTP/2 mit der alternativen Dienstmethode verwenden kann, muss alternativer Dienst (altsvc) im HTTP-Profil aktiviert sein.

  • Binden Sie das HTTP-Profil an einen virtuellen Server oder einen Dienst. Binden Sie das HTTP-Profil an einen virtuellen Server, um HTTP/2 für die Client-Seite des Lastausgleichs zu konfigurieren. Binden Sie das HTTP-Profil an einen Dienst, um HTTP2 für die Serverseite des Lastausgleichs zu konfigurieren.

Hinweis:

Citrix empfiehlt, separate HTTP-Profile für die Client- und die Serverseite zu binden.

  • Aktivieren Sie den globalen Parameter für die serverseitige HTTP/2 Unterstützung. Aktivieren Sie den globalen HTTP-Parameter HTTP/2 Service Side (HTTP2ServerSide), um die HTTP/2-Unterstützung auf der Serverseite aller Lastausgleichs-Setups zu aktivieren, für die HTTP/2 konfiguriert ist.

    HTTP/2 funktioniert nicht auf der Serverseite von Lastausgleichs-Setups, wenn HTTP/2 Service Side deaktiviert ist, auch wenn die HTTP/2 auf dem HTTP-Profil aktiviert ist, das an die zugehörigen Lastausgleichsdienste gebunden ist.

Citrix ADC Befehlszeilenprozeduren:

So aktivieren Sie HTTP/2 und setzen HTTP/2-Parameter mit der Citrix ADC Befehlszeile

  • Um HTTP/2 zu aktivieren und HTTP/2-Parameter festzulegen, während ein HTTP-Profil hinzugefügt wird, geben Sie an der Eingabeaufforderung Folgendes ein:

add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )] [-altsvc ( ENABLED | DISABLED )] show ns httpProfile <name>

  • Um HTTP/2 zu aktivieren und HTTP/2-Parameter festzulegen, während ein HTTP-Profil geändert wird, geben Sie an der Eingabeaufforderung Folgendes ein:

set ns httpProfile <name> -http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED)] [-altsvc (ENABLED | DISABLED )] show ns httpProfile <name>

So binden Sie das HTTP-Profil mit der Citrix ADC Befehlszeile an einen virtuellen Server

Geben Sie an der Eingabeaufforderung Folgendes ein:

set lb vserver <name> - httpProfileName <string> show lb vserver <name>

So binden Sie das HTTP-Profil mit der Citrix ADC Befehlszeile an einen Lastausgleichsdienst

Geben Sie an der Eingabeaufforderung Folgendes ein:

set service <name> -httpProfileName <string> show service <name>

So aktivieren Sie die HTTP/2-Unterstützung global auf der Serverseite mit der Citrix ADC Befehlszeile

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ns httpParam -HTTP2Serverside( ENABLED | DISABLED ) show ns httpParam

So aktivieren Sie HTTP/2 und setzen HTTP/2-Parameter mit der Citrix ADC GUI

  1. Navigieren Sie zu System > Profile, und klicken Sie auf die Registerkarte HTTP-Profile .
  2. Aktivieren Sie HTTP/2, während Sie ein HTTP-Profil hinzufügen oder ein vorhandenes HTTP-Profil ändern.

So binden Sie das HTTP-Profil mit der Citrix ADC GUI an einen virtuellen Server

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server, und öffnen Sie den virtuellen Server.
  2. Klicken Sie unter Erweiterte Einstellungen auf + HTTP-Profil, um das erstellte HTTP-Profil an den virtuellen Server zu binden.

So binden Sie das HTTP-Profil mit der Citrix ADC GUI an einen Lastausgleichsdienst

  1. Navigieren Sie zu Traffic Management > Load Balancing > Service, und öffnen Sie den Dienst.
  2. Klicken Sie unter Erweiterte Einstellungen auf + HTTP-Profil, um das erstellte HTTP-Profil an den Dienst zu binden.

So aktivieren Sie die HTTP/2-Unterstützung global auf der Serverseite mit der GUI

Navigieren Sie zu System > Einstellungen, klicken Sie auf HTTP-Parameter ändern und aktivieren Sie HTTP/2 Server Side .

Beispielkonfigurationen

In der folgenden Beispielkonfiguration sind HTTP/2 und direkte HTTP/2 auf HTTP-Profil HTTP-PROFILE-HTTP2-CLIENT-SIDE aktiviert. Das Profil ist an den virtuellen Server LB-VS-1 gebunden.

set ns httpProfile HTTP-PROFILE-HTTP2-CLIENT-SIDE -http2 enabled -http2Direct enabled
Done

set lb vserver LB-VS-1 -httpProfileName HTTP-PROFILE-HTTP2-CLIENT-SIDE

Done

In der folgenden Beispielkonfiguration sind HTTP/2 und alternativer Dienst (ALT-SVC) auf HTTP-Profil HTTP-PROFILE-HTTP2-SERVER-SIDE aktiviert. Das Profil ist an Service LB-SERVICE-1 gebunden.

set ns httpparam -HTTP2Serverside ENABLED
Done

set ns httpProfile HTTP-PROFILE-HTTP2-SERVER-SIDE -http2 ENABLED -altsvc ENABLED
Done

set service LB-SERVICE-1 -httpProfileName HTTP-PROFILE-HTTP2-SERVER-SIDE
Done