ADC

HTTP-Komprimierung

Für Websites mit komprimierbarem Inhalt implementiert die HTTP-Komprimierungsfunktion eine verlustfreie Komprimierung, um Latenz, lange Downloadzeiten und andere Probleme mit der Netzwerkleistung zu verringern, indem die von Servern an komprimierungsfähige Browser gesendeten HTTP-Antworten komprimiert werden. Sie können die Serverleistung verbessern, indem Sie die rechenintensive Komprimierungsaufgabe von Ihren Servern auf die NetScaler-Appliance übertragen.

In der folgenden Tabelle werden die Funktionen der HTTP-Komprimierungsfunktion beschrieben:

Funktionalität Beschreibung
Komprimierungsverhältnis Das Komprimierungsverhältnis hängt von den Dateitypen in den Antworten ab, ist jedoch immer signifikant, wodurch die über das Netzwerk übertragene Datenmenge spürbar reduziert wird.
Browser-Bewusstsein NetScaler liefert komprimierte Daten nur an komprimierungsfähige Browser, wodurch die Transaktionszeit zwischen dem Client und dem Server verkürzt wird. Die meisten modernen Webbrowser unterstützen die HTTP-Komprimierung.
Blockierung der Komprimierung Sie können Inhaltsfilter definieren, um die Komprimierung selektiv zu blockieren, indem Sie integrierte Aktionen anwenden.
Komprimierungs-Caching Wenn die integrierte Caching-Funktion aktiviert ist, werden nachfolgende Anfragen für denselben Inhalt aus dem lokalen Cache bedient, wodurch die Anzahl der Roundtrips zum Server reduziert und die Transaktionszeiten verbessert werden.
HTTPS-Unterstützung Die Komprimierung ist bei SSL-Verbindungen nützlich, da sie die Menge an Inhalten reduziert, die entweder auf dem Server oder von der NetScaler-Appliance verschlüsselt und vom Client entschlüsselt werden müssen.
Intelligente Response-Filterung Die NetScaler-Komprimierungsengine filtert Serverantworten intelligent basierend auf definierten Komprimierungsparametern. Zum Beispiel erkennt die Komprimierungs-Engine Antworten und komprimierte Antworten ohne Inhaltslänge und komprimiert sie nicht. Die Erkennung komprimierter Antworten ermöglicht es Original-Sites, serverbasierte Komprimierung mit der NetScaler-Komprimierungsfunktion zu verwenden.
Kompressions- Die NetScaler-Appliance leitet Anfragen von komprimierungsfähigen Clients transparent an komprimierungsfähige Server weiter, sodass Antworten auf diese Clients komprimiert werden und Antworten auf andere Clients nicht durch die Komprimierungsverarbeitung verzögert werden.

So funktioniert die HTTP-Komprimierung

Ein NetScaler kann sowohl statische als auch dynamisch generierte Daten komprimieren. Es wendet den GZIP- oder den DEFLATE-Komprimierungsalgorithmus an, um fremde und sich wiederholende Informationen aus den Serverantworten zu entfernen und die ursprünglichen Informationen in einem kompakteren und effizienteren Format darzustellen. Diese komprimierten Daten werden an den Browser des Clients gesendet und gemäß dem unterstützten Algorithmus oder den unterstützten Algorithmen des Browsers (GZIP oder DEFLATE) unkomprimiert.

Die NetScaler-Komprimierung behandelt statische und dynamische Inhalte unterschiedlich.

  • Statische Dateien werden nur einmal komprimiert und eine komprimierte Kopie wird im lokalen Speicher gespeichert. Nachfolgende Clientanforderungen für zwischengespeicherte Dateien werden von diesem Speicher aus bedient.
  • Dynamische Seiten werden jedes Mal dynamisch erstellt, wenn ein Kunde sie anfordert.

Wenn ein Client eine Anfrage an den Server sendet:

  1. Die Clientanforderung kommt beim NetScaler an. Der ADC untersucht die Header und speichert Informationen darüber, welche Art von Komprimierung der Browser gegebenenfalls unterstützt.
  2. Der ADC leitet die Anfrage an den Server weiter und erhält die Antwort.
  3. Die NetScaler-Komprimierungsengine untersucht die Serverantwort auf Komprimierbarkeit, indem sie mit Richtlinien verglichen wird.
  4. Wenn die Antwort mit einer Richtlinie übereinstimmt, die mit einer Komprimierungsaktion verknüpft ist, und der Clientbrowser einen durch die Aktion angegebenen Komprimierungsalgorithmus unterstützt, wendet NetScaler den Algorithmus an und sendet die komprimierte Antwort an den Clientbrowser.
  5. Der Client wendet den unterstützten Komprimierungsalgorithmus an, um die Antwort zu dekomprimieren.

Konfiguration der HTTP-Komprimierung

Standardmäßig ist die Komprimierung auf dem NetScaler deaktiviert. Sie müssen die Funktion aktivieren, bevor Sie sie konfigurieren. Wenn die Funktion aktiviert ist, komprimiert der ADC Serveranforderungen, die durch Komprimierungsrichtlinien festgelegt wurden.

So aktivieren Sie die HTTP-Komprimierung über die CLI

Die Komprimierung kann nur für HTTP- und SSL-Dienste aktiviert werden. Sie können es global aktivieren, sodass es für alle HTTP- und SSL-Dienste gilt, oder Sie können es nur für bestimmte Dienste aktivieren.

Geben Sie an der Eingabeaufforderung einen der folgenden Befehle ein, um die Komprimierung global oder für einen bestimmten Dienst zu aktivieren:

  • enable ns feature cmp ODER
  • set service \<name\> -CMP YES

So konfigurieren Sie die Komprimierung über die GUI

Führen Sie einen der folgenden Schritte aus:

Um die Komprimierung global zu aktivieren, navigieren Sie zu System > Einstellungen, klicken Sie auf Grundfunktionen konfigurieren und wählen Sie HTTP-Komprimierung aus.

Um die Komprimierung für einen bestimmten Dienst zu aktivieren, navigieren Sie zu Traffic Management > Load Balancing > Services, wählen Sie den Dienst aus und klicken Sie auf Bearbeiten. Klicken Sie in der Gruppe Einstellungen auf das Stiftsymbol und aktivieren Sie Komprimierung.

Konfigurieren einer Komprimierungsaktion

Eine Komprimierungsaktion gibt die Aktion an, die ausgeführt werden muss, wenn eine Anforderung oder Antwort mit der Regel (Ausdruck) in der Richtlinie übereinstimmt, mit der die Aktion verknüpft ist. Sie können beispielsweise eine Komprimierungsrichtlinie konfigurieren, die Anforderungen identifiziert, die an einen bestimmten Server gesendet werden, und die Richtlinie mit einer Aktion verknüpfen, die die Antwort des Servers komprimiert.

Es gibt vier eingebaute Komprimierungsaktionen:

  • COMPRESS: Verwendet den GZIP-Algorithmus, um Daten von Browsern zu komprimieren, die entweder GZIP oder sowohl GZIP als auch DEFLATE unterstützen. Verwendet den DEFLATE-Algorithmus, um Daten von Browsern zu komprimieren, die nur den DEFLATE-Algorithmus unterstützen. Wenn der Browser keinen der beiden Algorithmen unterstützt, wird die Antwort des Browsers nicht komprimiert.
  • NOCOMPRESS: Komprimiert keine Daten.
  • GZIP: Verwendet den GZIP-Algorithmus, um Daten für Browser zu komprimieren, die GZIP-Komprimierung unterstützen. Wenn der Browser den GZIP-Algorithmus nicht unterstützt, wird die Antwort des Browsers nicht komprimiert.
  • DEFLATE: Verwendet den DEFLATE-Algorithmus, um Daten für Browser zu komprimieren, die den DEFLATE-Algorithmus unterstützen. Wenn der Browser den DEFLATE-Algorithmus nicht unterstützt, wird die Antwort des Browsers nicht komprimiert. Nachdem Sie eine Aktion erstellt haben, ordnen Sie die Aktion einer oder mehreren Komprimierungsrichtlinien zu.

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein, um eine Komprimierungsaktion zu erstellen:

add cmp action <name> <cmpType> [-addVaryHeader <addVaryHeader> -varyHeaderValue<string>]

So konfigurieren Sie eine Komprimierungsrichtlinie über die CLI

Eine Komprimierungsrichtlinie enthält eine Regel, bei der es sich um einen logischen Ausdruck handelt, mit dem die NetScaler-Appliance den Datenverkehr identifizieren kann, der komprimiert werden soll.

Wenn NetScaler eine HTTP-Antwort von einem Server empfängt, werden die integrierten Komprimierungsrichtlinien und alle benutzerdefinierten Komprimierungsrichtlinien ausgewertet, um zu bestimmen, ob die Antwort komprimiert werden soll, und falls ja, der anzuwendende Komprimierungstyp. Die den Richtlinien zugewiesenen Prioritäten bestimmen die Reihenfolge, in der die Richtlinien mit den Anforderungen abgeglichen werden.

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein, um eine Komprimierungsrichtlinie zu erstellen:

add cmp policy <name> -rule <expression> -resAction <string>

So erstellen Sie eine Komprimierungsaktion über die GUI

Navigieren Sie zu Optimierung > HTTP-Komprimierung > Aktionen, klicken Sie auf Hinzufügen, und erstellen Sie eine Komprimierungsaktion, um die Art der Komprimierung anzugeben, die für die HTTP-Antwort ausgeführt werden soll.

Konfigurieren einer Komprimierungsrichtlinie

Eine Komprimierungsrichtlinie enthält eine Regel, bei der es sich um einen logischen Ausdruck handelt, mit dem die NetScaler-Appliance den Datenverkehr identifizieren kann, der komprimiert werden soll.

Wenn NetScaler eine HTTP-Antwort von einem Server empfängt, werden die integrierten Komprimierungsrichtlinien und alle benutzerdefinierten Komprimierungsrichtlinien ausgewertet, um zu bestimmen, ob die Antwort komprimiert werden soll, und falls ja, der anzuwendende Komprimierungstyp. Die den Richtlinien zugewiesenen Prioritäten bestimmen die Reihenfolge, in der die Richtlinien mit den Anforderungen abgeglichen werden.

In der folgenden Tabelle sind die integrierten HTTP-Komprimierungsrichtlinien aufgeführt. Diese Richtlinien werden global aktiviert, wenn Sie die Komprimierung aktivieren.

Integrierte Richtlinie Beschreibung
ns_adv_nocmp_mozilla_47 Verhindert die Komprimierung von CSS-Dateien, wenn eine Anfrage von einem Mozilla 4.7-Browser gesendet wird.
ns_adv_cmp_mscss Komprimiert CSS-Dateien, wenn die Anforderung von einem Microsoft Internet Explorer-Browser gesendet wird.
ns_adv_cmp_msapp Komprimiert Dateien, die von den folgenden Anwendungen generiert werden: Microsoft Office Word, Microsoft Office Excel, Microsoft Office PowerPoint.
ns_adv_cmp_content_type Komprimiert Daten, wenn die Antwort Header vom Typ Content-Typ und Text enthält.
ns_adv_nocmp_xml_ie Verhindert die Komprimierung, wenn eine Anfrage von einem Microsoft Internet Explorer-Browser gesendet wird und die Antwort einen Content-Type-Header enthält und Text oder XML enthält.

Bindung einer Komprimierungsrichtlinie

Um eine Komprimierungsrichtlinie in Kraft zu setzen, müssen Sie sie entweder global binden, damit sie für den gesamten Datenverkehr gilt, der durch den NetScaler fließt, oder an einen bestimmten virtuellen Server, sodass die Richtlinie nur für Anforderungen gilt, deren Ziel die VIP-Adresse dieses virtuellen Servers ist.

Wenn Sie eine Richtlinie binden, weisen Sie ihr eine Priorität zu. Die Priorität bestimmt die Reihenfolge, in der die von Ihnen definierten Richtlinien ausgewertet werden. Sie können die Priorität auf jede positive Ganzzahl festlegen.

So binden Sie eine Komprimierungsrichtlinie über die CLI

Geben Sie an der Eingabeaufforderung einen der folgenden Befehle ein, um eine Komprimierungsrichtlinie global oder an einen bestimmten virtuellen Server zu binden:

  • bind cmp global <policyName> [-priority <positive_integer>] [-gotoPriorityExpression <expression>] [-type <type>] [-invoke (<labelType> <labelName>) ]
  • bind lb vserver <vserverName> -policyName <policyName> -type (Request|Response) -priority <positive_integer> )

Wiederholen Sie diesen Befehl für jeden virtuellen Server, an den Sie die Komprimierungsrichtlinie binden möchten.

So binden Sie eine Komprimierungsrichtlinie über die GUI

Führen Sie einen der folgenden Schritte aus:

Navigieren Sie auf globaler Ebene zu Optimierung > HTTP-Komprimierung > Richtlinien, klicken Sie auf Richtlinien-Manager und binden Sie die erforderlichen Richtlinien, indem Sie den entsprechenden Bindepunkt und Verbindungstyp (Anforderung/Antwort) angeben.

Auf virtueller Serverebene

Navigieren Sie für den virtuellen Lastausgleichsserver zu Traffic Management > Load Balancing > Virtuelle Server, wählen Sie den erforderlichen virtuellen Server aus, klicken Sie auf Richtlinienund binden Sie die entsprechende Richtlinie.

Navigieren Sie für den virtuellen Content Switching-Server zu Traffic Management > Content Switching > Virtuelle Server, wählen Sie den erforderlichen virtuellen Server aus, klicken Sie auf Richtlinienund binden Sie die entsprechende Richtlinie.

Festlegen der globalen Komprimierungsparameter für optimale Leistung

Viele Benutzer akzeptieren die Standardwerte für die globalen Komprimierungsparameter, aber Sie können möglicherweise eine effektivere Komprimierung bereitstellen, indem Sie diese Einstellungen anpassen.

Hinweis Nachdem Sie die globalen Komprimierungsparameter konfiguriert haben, müssen Sie Ihre Appliance nicht neu starten. Sie werden sofort auf die neuen Flows angewendet.

In der folgenden Tabelle werden die Komprimierungsparameter beschrieben, die Sie auf dem NetScaler festlegen können.

Komprimierungs-Parameter Beschreibung
Quantengröße Größe des Puffers in KB für das Sammeln von Serverantworten beibehalten. Die Antworten werden komprimiert, wenn die Puffergröße diesen Wert überschreitet. Wenn Sie beispielsweise die Quantengröße auf 50 KB festlegen, komprimiert der NetScaler den Inhalt des Puffers, wenn seine Größe größer als 50 KB wird. Mindestwert: 1. Maximaler Wert: 63488 Standardwert: 57344.
Stufe der Kompression Auf Serverantworten anzuwendende Komprimierungsgrad. Mögliche Werte: Beste Geschwindigkeit, beste Kompression, optimal.
Minimale Größe der HTTP-Antwort Mindestgröße einer komprimierten HTTP-Antwort in Byte. Antworten, die kleiner als der durch diesen Parameter angegebene Wert sind, werden gesendet, ohne komprimiert zu werden.
Umgehung der Komprimierung bei der CPU-Auslastung NetScaler CPU-Auslastung in Prozent, bei oder über der keine Komprimierung erfolgt. Standardwert: 100.
Serverseitige Komprimierung zulassen Erlauben Sie Servern, komprimierte Daten an den NetScaler zu senden.
Push-Paket komprimieren Komprimieren Sie nach Erhalt eines Pakets mit einem TCP-PUSH-Flag die akkumulierten Pakete sofort, ohne darauf zu warten, dass der Quantenpuffer gefüllt wird.
Externer Cache Geben Sie eine private Antwortrichtlinie aus, die angibt, dass die Antwortnachricht für einen einzelnen Benutzer bestimmt ist und nicht von einem gemeinsam genutzten oder Proxy-Cache zwischengespeichert werden darf.

So konfigurieren Sie die HTTP-Komprimierung über die GUI

Führen Sie einen der folgenden Schritte aus:

  • Um die Komprimierung global zu aktivieren, navigieren Sie zu System > Einstellungen, klicken Sie auf Grundfunktionen konfigurieren und wählen Sie HTTP-Komprimierung aus.
  • Um die Komprimierung für einen bestimmten Dienst zu aktivieren, navigieren Sie zu Traffic Management > Load Balancing > Services, wählen Sie den Service aus und klicken Sie auf Bearbeiten.
  • Klicken Sie in der Gruppe Einstellungen auf das Stiftsymbol und aktivieren Sie Komprimierung.

So erstellen Sie eine Komprimierungsaktion über die GUI

Navigieren Sie zu Optimierung > HTTP-Komprimierung > Aktionen, klicken Sie auf Hinzufügen und erstellen Sie eine Komprimierungsaktion, um den Komprimierungstyp anzugeben, der für die HTTP-Antwort ausgeführt werden soll

So erstellen Sie über die GUI eine Komprimierungsrichtlinie

Navigieren Sie zu Optimierung > HTTP-Komprimierung > Richtlinien, klicken Sie auf Hinzufügenund erstellen Sie eine Komprimierungsrichtlinie, indem Sie die Bedingung und die entsprechende Aktion angeben, die ausgeführt werden soll.

Bewertung der Komprimierungskonfiguration

Sie können die Komprimierungsstatistiken im Dashboard-Dienstprogramm oder in einem SNMP-Monitor anzeigen. Das Dashboard-Dienstprogramm zeigt zusammenfassende und detaillierte Statistiken in einem Tabellen- und Grafikformat an.

Optional können Sie auch Statistiken für eine Komprimierungsrichtlinie anzeigen, einschließlich der Anzahl der Anforderungen, die der Richtlinienzähler während der richtlinienbasierten Komprimierung erhöht.

Hinweis

  • Weitere Informationen zu den Statistiken und Diagrammen finden Sie in der Dashboard-Hilfe zur NetScaler-Appliance.
  • Weitere Informationen zu SNMP finden Sie unter dem Thema SNMP .

So zeigen Sie Komprimierungsstatistiken mit der CLI an

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um die Komprimierungsstatistiken anzuzeigen:

  1. Zum Anzeigen einer Zusammenfassung der Komprimierungsstatistiken.

stat cmp

Hinweis Der Befehl stat cmp policy zeigt nur Statistiken für erweiterte Richtlinien zur Komprimierungsrichtlinie an.

2. Um Treffer und Details der Komprimierungsrichtlinie anzuzeigen show cmp policy \<name\>

3. Um detaillierte Kompressionsstatistiken anzuzeigen stat cmp -detail

So zeigen Sie Komprimierungsstatistiken mithilfe des Dashboards an:

Im Dashboard-Dienstprogramm können Sie die folgenden Arten von Komprimierungsstatistiken anzeigen:

  • Wählen Sie Komprimierung aus, um eine Zusammenfassung der Komprimierungsstatistiken anzuzeigen.
  • Um detaillierte Komprimierungsstatistiken nach Protokolltyp anzuzeigen, klicken Sie auf Details
  • Um die Rate der von der Komprimierungsfunktion verarbeiteten Anforderungen anzuzeigen, klicken Sie auf die Registerkarte Grafische Ansicht.

So zeigen Sie Komprimierungsstatistiken mithilfe von SNMP an

Sie können die folgenden Komprimierungsstatistiken mithilfe der SNMP-Netzwerkverwaltungsanwendung anzeigen.

  • Anzahl der Komprimierungsanforderungen (OID: 1.3.6.1.4.1.5951.4.1.1.50.1)
  • Anzahl der übertragenen komprimierten Byte (OID: 1.3.6.1.4.1.5951.4.1.1.50.2)
  • Anzahl empfangener komprimierbarer Byte (OID: 1.3.6.1.4.1.5951.4.1.1.50.3)
  • Anzahl der übertragenen komprimierbaren Pakete (OID: 1.3.6.1.4.1.5951.4.1.1.50.4)
  • Anzahl der empfangenen komprimierbaren Pakete (OID: 1.3.6.1.4.1.5951.4.1.1.50.5)
  • Verhältnis der empfangenen komprimierbaren und übertragenen komprimierten Daten (OID: 1.3.6.1.4.1.5951.4.1.1.50.6)
  • Verhältnis der insgesamt empfangenen Daten zu insgesamt übertragenen Daten (OID: 1.3.6.1.4.1.5951.4.1.1.50.7)

So zeigen Sie über die GUI weitere Komprimierungsstatistiken an

  1. So zeigen Sie HTTP Komprimierungsstatistiken an:

Navigieren Sie zu Optimierung > HTTP-Komprimierung und klicken Sie auf Statistik.

  1. Zum Anzeigen von Statistiken einer Komprimierungsrichtlinie.

Navigieren Sie zu Optimierung > HTTP-Komprimierung > Richtlinien > wählen Sie die Richtlinie aus und klicken Sie auf Statistik.

  1. So zeigen Sie Statistiken einer Bezeichnung für Komprimierungsrichtlinien an

  2. Navigieren Sie zu Optimierung > HTTP-Komprimierung > Richtlinien > wählen Sie ein Richtlinienlabel aus und klicken Sie auf Statistik.

Entladen der HTTP-Komprimierung

Die Durchführung einer Komprimierung auf einem Server kann die Leistung des Servers beeinträchtigen. Ein NetScaler, der vor Ihren Webservern platziert und für die HTTP-Komprimierung konfiguriert ist, entlastet die Komprimierung sowohl statischer als auch dynamischer Inhalte, wodurch Server-CPU-Zyklen und -Ressourcen eingespart werden.

Sie können die Komprimierung auf zwei Arten von den Webservern abladen:

Deaktivieren Sie die Komprimierung auf den Webservern, aktivieren Sie die NetScaler-Komprimierungsfunktion auf globaler Ebene und konfigurieren Sie Dienste für die Komprimierung.

Lassen Sie die Komprimierungsfunktion auf den Webservern aktiviert und konfigurieren Sie die NetScaler-Appliance so, dass der Header “Verschlüsselung akzeptieren” von allen HTTP-Clientanforderungen entfernt wird. Die Server senden dann unkomprimierte Antworten. Der NetScaler komprimiert die Serverantworten, bevor er sie an die Clients sendet.

Hinweis Die zweite Option funktioniert nicht, wenn die Server automatisch alle Antworten komprimieren. Der NetScaler versucht nicht, eine bereits komprimierte Antwort zu komprimieren.

Der Parameter Servercmp ermöglicht es der NetScaler-Appliance, die Offload-HTTP-Komprimierung zu verarbeiten. Standardmäßig ist dieser Parameter eingeschaltet, damit der Server komprimierte Daten an die NetScaler-Appliance sendet. Um die HTTP-Komprimierung auszuladen, müssen Sie den Parameter servercmp auf OFF setzen. Geben Sie an der Eingabeaufforderung die folgenden Befehle ein:

set service <service name> -CMP YES

Wiederholen Sie diesen Befehl für jeden Dienst, für den Sie die Komprimierung aktivieren möchten.

show service <service name>

Wiederholen Sie diesen Befehl für jeden Dienst, um zu überprüfen, ob die Komprimierung aktiviert ist.

Save config

set cmp parameter –serverCmp OFF

Hinweis:

Wenn der Servercmp Parameter eingeschaltet ist und die Appliance eine komprimierte Antwort vom Server erhält, komprimiert die Appliance die Daten nicht weiter. Stattdessen leitet es die komprimierte Antwort an den Client weiter.