ADC

Compression HTTP

Pour les sites Web dont le contenu est compressible, la fonctionnalité de compression HTTP implémente une compression sans perte pour réduire la latence, les longs temps de téléchargement et d’autres problèmes de performances réseau en compressant les réponses HTTP envoyées depuis les serveurs vers les navigateurs sensibles à la compression. Vous pouvez améliorer les performances des serveurs en déchargeant les tâches de compression gourmandes en calculs de vos serveurs vers l’appliance NetScaler.

Le tableau suivant décrit les fonctionnalités de la fonction de compression HTTP :

Fonctionnalité Description
Taux de compression Le taux de compression dépend des types de fichiers contenus dans les réponses, mais il est toujours important, ce qui réduit sensiblement la quantité de données transmises sur le réseau.
Connaissance du navigateur NetScaler diffuse les données compressées uniquement aux navigateurs compatibles avec la compression, ce qui réduit le temps de transaction entre le client et le serveur. La plupart des navigateurs Web modernes prennent en charge la compression HTTP.
blocage de la compression Vous pouvez définir des filtres de contenu pour bloquer sélectivement la compression en appliquant des actions intégrées.
Mise en cache de compression Lorsque la fonction de mise en cache intégrée est activée, les demandes suivantes pour le même contenu sont envoyées à partir du cache local, ce qui réduit le nombre d’allers-retours vers le serveur et améliore les temps de transaction.
Prise en charge HTTPS La compression est utile sur les connexions SSL, car elle réduit la quantité de contenu qui doit être chiffré, soit sur le serveur, soit par l’appliance NetScaler, puis déchiffré par le client.
Filtrage intelligent des réponses Le moteur de compression NetScaler filtre intelligemment les réponses du serveur en fonction de paramètres de compression définis. Par exemple, le moteur de compression détecte les réponses de longueur nulle et les réponses compressées et ne les compresse pas. La détection des réponses compressées permet aux sites d’origine d’utiliser la compression basée sur le serveur avec la fonctionnalité de compression NetScaler.
Commutation des L’appliance NetScaler dirige de manière transparente les demandes des clients sensibles à la compression vers des serveurs capables de la compression, de sorte que les réponses à ces clients soient compressées et que les réponses aux autres clients ne soient pas retardées par le traitement de compression.

Fonctionnement de la compression HTTP

Un NetScaler peut compresser à la fois les données statiques et générées dynamiquement. Il applique l’algorithme de compression GZIP ou DEFLATE pour supprimer les informations superflues et répétitives des réponses du serveur et représenter les informations d’origine dans un format plus compact et efficace. Ces données compressées sont envoyées au navigateur du client et décompressées selon les algorithmes pris en charge par le navigateur (GZIP ou DEFLATE).

La compression NetScaler traite différemment le contenu statique et dynamique.

  • Les fichiers statiques ne sont compressés qu’une seule fois et une copie compressée est stockée dans la mémoire locale. Les demandes ultérieures des clients concernant les fichiers mis en cache sont traitées à partir de cette mémoire.
  • Les pages dynamiques sont créées dynamiquement chaque fois qu’un client en fait la demande.

Lorsqu’un client envoie une demande au serveur :

  1. La demande du client parvient à NetScaler. L’ADC examine les en-têtes et stocke des informations sur le type de compression pris en charge par le navigateur, le cas échéant.
  2. L’ADC transmet la demande au serveur et reçoit la réponse.
  3. Le moteur de compression NetScaler examine la compressibilité de la réponse du serveur en la comparant aux stratégies.
  4. Si la réponse correspond à une stratégie associée à une action de compression et que le navigateur client prend en charge un algorithme de compression spécifié par l’action, NetScaler applique l’algorithme et envoie la réponse compressée au navigateur client.
  5. Le client applique l’algorithme de compression pris en charge pour décompresser la réponse.

Configurer la compression HTTP

Par défaut, la compression est désactivée sur NetScaler. Vous devez activer la fonctionnalité avant de la configurer. Si la fonctionnalité est activée, l’ADC compresse les demandes de serveur spécifiées par les stratégies de compression.

Pour activer la compression HTTP à l’aide de l’interface de ligne de commande

La compression ne peut être activée que pour les services HTTP et SSL. Vous pouvez l’activer globalement, de sorte qu’il s’applique à tous les services HTTP et SSL, ou vous pouvez l’activer uniquement pour des services spécifiques.

À l’invite de commandes, saisissez l’une des commandes suivantes pour activer la compression globalement ou pour un service spécifique :

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

Pour configurer la compression à l’aide de l’interface graphique

Procédez comme suit :

Pour activer la compression de manière globale, accédez à Système > Paramètres, cliquez sur Configurer les fonctionnalités de base, puis sélectionnez Compression HTTP.

Pour activer la compression pour un service spécifique, accédez à Gestion du trafic > Équilibrage de charge > Services, sélectionnez le service et cliquez sur Modifier. Dans le groupe Paramètres, cliquez sur l’icône en forme de crayon et activez la compression.

Configuration d’une action de compression

Une action de compression spécifie l’action à effectuer lorsqu’une demande ou une réponse correspond à la règle (expression) de la stratégie à laquelle l’action est associée. Par exemple, vous pouvez configurer une stratégie de compression qui identifie les demandes qui seront envoyées à un serveur particulier et associer la stratégie à une action qui compresse la réponse du serveur.

Il existe quatre actions de compression intégrées :

  • COMPRESSER : utilise l’algorithme GZIP pour compresser les données des navigateurs qui prennent en charge GZIP ou GZIP et DEFLATE. Utilise l’algorithme DEFLATE pour compresser les données des navigateurs qui prennent uniquement en charge l’algorithme DEFLATE. Si le navigateur ne prend pas en charge l’un ou l’autre algorithme, la réponse du navigateur n’est pas compressée.
  • NOCOMPRESS : ne compresse pas les données.
  • GZIP : utilise l’algorithme GZIP pour compresser les données des navigateurs qui prennent en charge la compression GZIP. Si le navigateur ne prend pas en charge l’algorithme GZIP, la réponse du navigateur n’est pas compressée.
  • DEFLATE : utilise l’algorithme DEFLATE pour compresser les données des navigateurs qui prennent en charge l’algorithme DEFLATE. Si le navigateur ne prend pas en charge l’algorithme DEFLATE, la réponse du navigateur n’est pas compressée. Après avoir créé une action, vous l’associez à une ou plusieurs stratégies de compression.

À l’invite de commandes, saisissez la commande suivante pour créer une action de compression :

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

Pour configurer une stratégie de compression à l’aide de l’interface de ligne de commande

Une stratégie de compression contient une règle, qui est une expression logique qui permet à l’appliance NetScaler d’identifier le trafic qui doit être compressé.

Lorsque NetScaler reçoit une réponse HTTP d’un serveur, il évalue les stratégies de compression intégrées et toutes les stratégies de compression personnalisées afin de déterminer s’il convient de compresser la réponse et, le cas échéant, le type de compression à appliquer. Les priorités attribuées aux stratégies déterminent l’ordre dans lequel les stratégies sont mises en correspondance avec les demandes.

À l’invite de commandes, saisissez la commande suivante pour créer une stratégie de compression :

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

Pour créer une action de compression à l’aide de l’interface graphique

Accédez à Optimisation > Compression HTTP > Actions, cliquez sur Ajouter et créez une action de compression pour spécifier le type de compression à effectuer sur la réponse HTTP.

Configuration d’une stratégie de compression

Une stratégie de compression contient une règle, qui est une expression logique qui permet à l’appliance NetScaler d’identifier le trafic qui doit être compressé.

Lorsque NetScaler reçoit une réponse HTTP d’un serveur, il évalue les stratégies de compression intégrées et toutes les stratégies de compression personnalisées afin de déterminer s’il convient de compresser la réponse et, le cas échéant, le type de compression à appliquer. Les priorités attribuées aux stratégies déterminent l’ordre dans lequel les stratégies sont mises en correspondance avec les demandes.

Le tableau suivant répertorie les stratégies de compression HTTP intégrées. Ces stratégies sont activées globalement lorsque vous activez la compression.

Stratégie intégrée Description
ns_adv_nocmp_mozilla_47 Empêche la compression des fichiers CSS lorsqu’une requête est envoyée depuis un navigateur Mozilla 4.7.
ns_adv_cmp_mscss Compresse les fichiers CSS lorsque la demande est envoyée depuis un navigateur Microsoft Internet Explorer.
ns_adv_cmp_msapp Compresse les fichiers générés par les applications suivantes : Microsoft Office Word, Microsoft Office Excel, Microsoft Office PowerPoint.
ns_adv_cmp_content_type Compresse les données lorsque la réponse contient un en-tête Content-type et contient du texte.
ns_adv_nocmp_xml_ie Empêche la compression lorsqu’une demande est envoyée à partir d’un navigateur Microsoft Internet Explorer et que la réponse contient un en-tête Content-Type et contient du texte ou du XML.

Liaison d’une stratégie de compression

Pour mettre en œuvre une stratégie de compression, vous devez la lier soit globalement, de sorte qu’elle s’applique à tout le trafic qui passe par NetScaler, soit à un serveur virtuel spécifique, de sorte que la stratégie ne s’applique qu’aux demandes dont la destination est l’adresse VIP de ce serveur virtuel.

Lorsque vous liez une stratégie, vous lui attribuez une priorité. La priorité détermine l’ordre dans lequel les stratégies que vous définissez sont évaluées. Vous pouvez définir la priorité sur n’importe quel nombre entier positif.

Pour lier une stratégie de compression à l’aide de l’interface de ligne de commande

À l’invite de commandes, saisissez l’une des commandes suivantes pour lier une stratégie de compression globalement ou à un serveur virtuel spécifique :

  • 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> )

Répétez cette commande pour chaque serveur virtuel auquel vous souhaitez lier la stratégie de compression.

Pour lier une stratégie de compression à l’aide de l’interface graphique

Procédez comme suit :

Au niveau global, accédez à Optimisation > Compression HTTP > Stratégies, cliquez sur Gestionnaire de stratégies et liez les stratégies requises en spécifiant le point de liaison et le type de connexion appropriés (demande/réponse).

Au niveau du serveur virtuel

Pour le serveur virtuel d’équilibrage de charge, accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels, sélectionnez le serveur virtuel requis, cliquez sur Stratégieset liez la stratégie correspondante.

Pour le serveur virtuel de commutation de contenu, accédez à Gestion du trafic > Commutation de contenu > Serveurs virtuels, sélectionnez le serveur virtuel requis, cliquez sur Stratégieset liez la stratégie correspondante.

Définissez les paramètres de compression globaux pour des performances optimales

De nombreux utilisateurs acceptent les valeurs par défaut des paramètres de compression globaux, mais vous pouvez peut-être fournir une compression plus efficace en personnalisant ces paramètres.

Remarque Après avoir configuré les paramètres de compression globaux, il n’est pas nécessaire de redémarrer votre solution matérielle-logicielle. Ils sont immédiatement appliqués aux nouveaux flux.

Le tableau suivant décrit les paramètres de compression que vous pouvez définir sur NetScaler.

Paramètres de compression Description
Taille Quantum Taille, en Ko, de la mémoire tampon conservée pour l’accumulation des réponses du serveur. Les réponses sont compressées lorsque la taille de la mémoire tampon dépasse cette valeur. Par exemple, si vous définissez la taille quantique à 50 Ko, NetScaler compresse le contenu de la mémoire tampon lorsque sa taille dépasse 50 Ko. Valeur minimale : 1. Valeur maximale : 63488. Par défaut : 57344.
Niveau de compression Niveau de compression à appliquer aux réponses du serveur. Valeurs possibles : meilleure vitesse, meilleure compression, optimale.
Taille de réponse HTTP minimale Taille minimale, en octets, d’une réponse HTTP compressée. Les réponses inférieures à la valeur spécifiée par ce paramètre sont envoyées sans être compressées.
Contournement de la compression sur l’utilisation du processeur Utilisation du processeur NetScaler, en pourcentage, à partir de laquelle aucune compression n’est effectuée. Par défaut : 100.
Autoriser la compression côté serveur Autorisez les serveurs à envoyer des données compressées à NetScaler.
Compresser le paquet push À la réception d’un paquet avec un drapeau TCP PUSH, compressez immédiatement les paquets accumulés, sans attendre que le tampon quantique soit rempli.
Cache externe Émettez une directive de réponse privée indiquant que le message de réponse est destiné à un seul utilisateur et ne doit pas être mis en cache par un cache partagé ou proxy.

Pour configurer la compression HTTP à l’aide de l’interface graphique

Procédez comme suit :

  • Pour activer la compression de manière globale, accédez à Système > Paramètres, cliquez sur Configurer les fonctionnalités de base, puis sélectionnez Compression HTTP.
  • Pour activer la compression pour un service spécifique, accédez à Gestion du trafic > Équilibrage de charge > Services, sélectionnez le service et cliquez sur Modifier.
  • Dans le groupe Paramètres, cliquez sur l’icône en forme de crayon et activez la compression.

Pour créer une action de compression à l’aide de l’interface graphique

Accédez à Optimisation > Compression HTTP > Actions, cliquez sur Ajouter et créez une action de compression pour spécifier le type de compression à effectuer sur la réponse HTTP

Pour créer une stratégie de compression à l’aide de l’interface graphique

Accédez à Optimisation > Compression HTTP > Stratégies, cliquez sur Ajouteret créez une stratégie de compression en spécifiant la condition et l’action correspondante à exécuter.

Évaluation de la configuration de compression

Vous pouvez afficher les statistiques de compression dans l’utilitaire de tableau de bord ou dans un moniteur SNMP. L’utilitaire de tableau de bord affiche des statistiques récapitulatives et détaillées sous forme de tableau et de graphique.

Vous pouvez également afficher les statistiques d’une stratégie de compression, y compris le nombre de demandes incrémentées par le compteur de stratégie pendant la compression basée sur la stratégie.

Remarque

  • Pour plus d’informations sur les statistiques et les graphiques, consultez l’aide du tableau de bord sur l’appliance NetScaler.
  • Pour plus d’informations sur le protocole SNMP, consultez la rubrique SNMP .

Pour afficher les statistiques de compression à l’aide de l’interface de ligne de commande

À l’invite de commandes, saisissez les commandes suivantes pour afficher les statistiques de compression :

  1. Pour afficher le résumé des statistiques de compression.

stat cmp

Remarque La commande stat cmp policy affiche les statistiques pour les stratégies de compression de stratégie avancée uniquement.

2. Pour afficher les résultats et les détails de la stratégie de compression show cmp policy \<name\>

3. Pour afficher des statistiques de compression détaillées stat cmp -detail

Pour afficher les statistiques de compression à l’aide du tableau de bord :

Dans l’utilitaire Tableau de bord, vous pouvez afficher les types de statistiques de compression suivants :

  • Sélectionnez Compression pour afficher un résumé des statistiques de compression.
  • Pour afficher des statistiques de compression détaillées par type de protocole, cliquez sur le bouton Détails
  • Pour afficher le taux de demandes traitées par la fonction de compression, cliquez sur l’onglet Affichage graphique.

Pour afficher les statistiques de compression à l’aide du protocole SNMP

Vous pouvez afficher les statistiques de compression suivantes à l’aide de l’application de gestion de réseau SNMP.

  • Nombre de demandes de compression (OID : 1.3.6.1.4.1.5951.4.1.1.50.1)
  • Nombre d’octets compressés transmis (OID : 1.3.6.1.4.1.5951.4.1.1.50.2)
  • Nombre d’octets compressibles reçus (OID : 1.3.6.1.4.1.5951.4.1.1.50.3)
  • Nombre de paquets compressibles transmis (OID : 1.3.6.1.4.1.5951.4.1.1.50.4)
  • Nombre de paquets compressibles reçus (OID : 1.3.6.1.4.1.5951.4.1.1.50.5)
  • Rapport des données compressibles reçues et des données compressées transmises (OID : 1.3.6.1.4.1.5951.4.1.1.50.6)
  • Rapport entre le total des données reçues et le total des données transmises (OID : 1.3.6.1.4.1.5951.4.1.1.50.7)

Pour afficher plus de statistiques de compression à l’aide de l’interface graphique

  1. Pour afficher les statistiques de compression HTTP :

Accédez à Optimisation > Compression HTTP et cliquez sur Statistiques.

  1. Pour afficher les statistiques d’une stratégie de compression.

Accédez à Optimisation > Compression HTTP > Stratégies > sélectionnez la stratégie, puis cliquez sur Statistiques.

  1. Pour afficher les statistiques d’une étiquette de stratégie de compression

  2. Accédez à Optimisation > Compression HTTP > Stratégies > sélectionnez un libellé de stratégie, puis cliquez sur Statistiques.

Déchargement de la compression HTTP

La compression sur un serveur peut affecter les performances du serveur. Un NetScaler placé devant vos serveurs Web et configuré pour la compression HTTP décharge la compression du contenu statique et dynamique, économisant ainsi des cycles de processeur et des ressources du serveur.

Vous pouvez décharger la compression des serveurs Web de l’une des deux manières suivantes :

Désactivez la compression sur les serveurs Web, activez la fonctionnalité de compression NetScaler au niveau global et configurez les services pour la compression.

Laissez la fonctionnalité de compression activée sur les serveurs Web et configurez l’appliance NetScaler pour supprimer l’en-tête « Accept Encoding » de toutes les demandes des clients HTTP. Les serveurs envoient ensuite des réponses non compressées. NetScaler compresse les réponses du serveur avant de les envoyer aux clients.

Remarque La deuxième option ne fonctionne pas si les serveurs compressent automatiquement toutes les réponses. NetScaler ne tente pas de compresser une réponse déjà compressée.

Le paramètre Servercmp permet à l’appliance NetScaler de gérer la compression HTTP de déchargement. Par défaut, ce paramètre est défini sur ON pour que le serveur envoie des données compressées à l’appliance NetScaler. Pour décharger la compression HTTP, vous devez définir le paramètre servercmp sur OFF. À l’invite de commandes, saisissez les commandes suivantes :

set service <service name> -CMP YES

Répétez cette commande pour chaque service pour lequel vous souhaitez activer la compression.

show service <service name>

Répétez cette commande pour chaque service afin de vérifier que la compression est activée.

Save config

set cmp parameter –serverCmp OFF

Remarque :

Lorsque le Servercmp paramètre est activé et que la solution matérielle-logicielle reçoit une réponse compressée du serveur, la solution matérielle-logicielle ne compresse plus les données. Au lieu de cela, il transmet la réponse compressée au client.