Compression HTTP

Pour les sites Web avec contenu compressible, la fonctionnalité de compression HTTP implémente la compression sans perte pour réduire la latence, les longs délais de téléchargement et d’autres problèmes de performances réseau en compressant les réponses HTTP envoyées des serveurs aux navigateurs compatibles avec la compression. Vous pouvez améliorer les performances du serveur en déchargeant la tâche de compression intensive en calcul de vos serveurs vers l’appliance Citrix ADC.

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

Fonctionnalité Description
Taux de compression Le ratio de compression dépend des types de fichiers dans les réponses, mais est toujours significatif, réduisant sensiblement la quantité de données transmises sur le réseau.
Connaissance du navigateur Citrix ADC fournit des 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 par 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 ultérieures pour le même contenu sont traité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 particulièrement 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 Citrix ADC, et déchiffré par le client.
Filtrage des réponses intelligentes Le moteur de compression Citrix ADC filtre intelligemment les réponses du serveur sur la base de paramètres de compression définis. Par exemple, le moteur de compression détecte les réponses de longueur de contenu nulle et les réponses compressées et ne les compresse pas. La détection de réponses compressées permet aux sites d’origine d’utiliser la compression basée sur serveur conjointement avec la fonction de compression Citrix ADC.
Commutation par compression L’appliance Citrix ADC dirige de manière transparente les demandes des clients sensibles à la compression vers des serveurs capables de compression, afin 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 Citrix ADC peut compresser à la fois des 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 plus efficace. Ces données compressées sont envoyées au navigateur du client et non compressées comme déterminé par l’algorithme ou les algorithmes pris en charge par le navigateur (GZIP ou DEFLATE).

La compression Citrix ADC 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 requêtes clientes suivantes pour 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 les demande.

Lorsqu’un client envoie une requête au serveur :

  1. La demande client arrive à Citrix ADC. L’ADC examine les en-têtes et stocke des informations sur le type de compression, le cas échéant, pris en charge par le navigateur.
  2. ADC transmet la demande au serveur et reçoit la réponse.
  3. Le moteur de compression Citrix ADC examine la réponse du serveur à la recherche de compressibilité 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, Citrix ADC 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 le Citrix ADC. Vous devez activer la fonctionnalité avant de la configurer. Si la fonctionnalité est activée, 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, entrez 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 globalement, 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 Compression.

Configuration d’une action de compression

Une action de compression spécifie l’action à effectuer lorsqu’une requête 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 y a quatre actions de compression intégrées :

  • COMPRESS : 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 ne prennent en charge que l’algorithme DEFLATE. Si le navigateur ne prend pas en charge l’un ou l’autre des algorithmes, 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, entrez 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 Citrix ADC d’identifier le trafic à compresser.

Lorsque Citrix ADC reçoit une réponse HTTP d’un serveur, il évalue les stratégies de compression intégrées et les stratégies de compression personnalisées pour déterminer s’il faut 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, entrez 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 Citrix ADC d’identifier le trafic à compresser.

Lorsque Citrix ADC reçoit une réponse HTTP d’un serveur, il évalue les stratégies de compression intégrées et les stratégies de compression personnalisées pour déterminer s’il faut 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 de syntaxe classique ou par défaut intégrée Description
ns_nocmp_mozilla_47, ns_adv_nocmp_mozilla_47 Empêche la compression des fichiers CSS lorsqu’une requête est envoyée à partir d’un navigateur Mozilla 4.7.
ns_cmp_mscss, ns_adv_cmp_mscss Compresse les fichiers CSS lorsque la demande est envoyée à partir d’un navigateur Microsoft Internet Explorer.
ns_cmp_msapp, 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_cmp_content_type, ns_adv_cmp_content_type Comprime les données lorsque la réponse ContainsContent-type en-tête et contient du texte.
ns_nocmp_xml_ie, 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 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 circule via Citrix ADC, 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 entier positif.

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

À l’invite de commandes, entrez 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>] [-state (ENABLED|DISABLED)]
  • bind lb vserver <vserverName> -policyName <policyName> -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 (Request/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égies et liez la stratégie appropriée.

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égies et liez la stratégie appropriée.

Définir 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 pourriez être en mesure de fournir une compression plus efficace en personnalisant ces paramètres.

Remarque Après avoir configuré les paramètres de compression globaux, vous n’avez pas à redémarrer votre appliance. Ils sont appliqués aux nouveaux flux immédiatement.

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

Paramètres de compression Description
Taille quantique 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 du tampon dépasse cette valeur. Par exemple, si vous définissez la taille quantique sur 50 Ko, Citrix ADC compresse le contenu du 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 : Best Speed, Best Compression, optimal.
Taille minimale de réponse HTTP 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 CPU Citrix ADC, en pourcentage, à ou au-dessus duquel aucune compression n’est effectuée. Par défaut : 100.
Type de stratégie* Type de stratégies utilisées pour la compression. Valeurs possibles : Classic, Default Syntax. Par défaut : Classic.
Autoriser la compression côté serveur Autoriser les serveurs à envoyer des données compressées au Citrix ADC.
Compresser le paquet push Dès réception d’un paquet avec un indicateur TCP PUSH, compresser 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 utilisateur unique 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 globalement, 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 Compression.

Configurer l’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

Configurer la stratégie de compression à l’aide de l’interface graphique

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

Évaluer 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 tableaux et de graphiques.

Vous pouvez également afficher les statistiques d’une stratégie de compression, y compris le nombre d’accès incrémenté par le compteur de stratégie au cours de la compression basée sur une stratégie.

Remarque

  • Pour plus d’informations sur les statistiques et les graphiques, consultez l’aide du Tableau de bord sur l’appliance Citrix ADC.
  • Pour plus d’informations sur SNMP, reportez-vous à la rubrique SNMP.

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

À l’invite de commandes, entrez 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 des statistiques pour les stratégies de compression de syntaxe par défaut uniquement.

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

  2. 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 la page du 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 Vue graphique.

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

Vous pouvez afficher les statistiques de compression suivantes à l’aide de l’application de gestion 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 des statistiques de compression supplémentaires à l’aide de l’interface graphique

  1. Pour afficher les statistiques de compression HTTP :

Accédez à Optimisation > Compression HTTP, puis 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 une étiquette de stratégie, puis cliquez sur Statistiques.

Déchargement de la compression HTTP

Effectuer une compression sur un serveur peut affecter les performances du serveur. Un Citrix ADC placé devant vos serveurs Web et configuré pour la compression HTTP décharge la compression du contenu statique et dynamique, ce qui permet d’économiser les cycles et les ressources CPU du serveur.

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

Désactivez la compression sur les serveurs Web, activez la fonctionnalité de compression Citrix ADC à un niveau global et configurez les services pour la compression.

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

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

Le paramètre Servercmp permet à l’appliance Citrix ADC de gérer la compression HTTP de déchargement. Par défaut, ce paramètre est activé pour que le serveur envoie des données compressées à l’appliance Citrix ADC. Pour décharger la compression HTTP, vous devez définir le paramètre servercmp sur OFF. À l’invite de commandes, entrez 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, pour vérifier que la compression est activée.

Save config

set cmp parameter –serverCmp OFF

Remarque :

Lorsque le paramètre Servercmp est activé et que l’appliance reçoit une réponse compressée du serveur, celle-ci ne compresse pas davantage les données. Au lieu de cela, il transmet la réponse compressée au client.