Citrix ADC

Configuration HTTP/2

Remarque : la fonctionnalité HTTP/2 est prise en charge sur les modèles Citrix ADC MPX, VPX et SDX. Dans une appliance Citrix ADC VPX, la fonctionnalité HTTP/2 est prise en charge à partir de la version 11.0.

Le problème avec les performances de l’application Web est directement lié à la tendance à augmenter la taille de la page et le nombre d’objets sur les pages Web. HTTP/1.1 a été développé pour prendre en charge les pages Web plus petites, les connexions Internet plus lentes et le matériel serveur plus limité qu’aujourd’hui. Il n’est pas adapté aux nouvelles technologies telles que JavaScript et feuilles de style en cascade (CSS) ou aux nouveaux types de médias tels que les vidéos Flash et les images riches en graphiques. En effet, il ne peut demander qu’une seule ressource par connexion au serveur. Cette limitation augmente considérablement le nombre de trajets aller-retour, entraînant un rendu de page plus long et une réduction des performances réseau.

Le protocole HTTP/2 corrige ces limitations en permettant la communication avec moins de données transmises sur le réseau et en offrant la possibilité d’envoyer plusieurs requêtes et réponses sur une seule connexion. À son cœur, HTTP/2 répond aux principales limitations de HTTP/1.1 en utilisant plus efficacement les connexions réseau sous-jacentes. Il modifie la façon dont les demandes et les réponses se déplacent sur le réseau.

HTTP/2 est un protocole binaire. Il est plus efficace d’analyser, plus compact sur le fil, et surtout, il est moins sujet aux erreurs, par rapport aux protocoles textuels comme HTTP/1.1. Le protocole HTTP/2 utilise une couche d’encadrement binaire qui définit le type d’image et la manière dont les messages HTTP sont encapsulés et transférés entre le client et le serveur.La fonctionnalité HTTP/2 prend en charge l’utilisation de la méthode CONNECT pour établir une connexion tunnel via un flux HTTP/2 unique vers un hôte distant.

Le protocole HTTP/2 inclut de nombreuses modifications améliorant les performances qui améliorent considérablement les performances, en particulier pour les clients qui se connectent sur un réseau mobile.

Le tableau suivant répertorie les principales améliorations de HTTP/2 par rapport à HTTP/1.1 :

Fonctionnalités HTTP/2 Description
Compression d’en-tête Les en-têtes HTTP contiennent de nombreuses informations répétitives et consomment donc de la bande passante inutile pendant la transmission des données. HTTP/2 réduit les besoins en bande passante en comprimant l’en-tête et en minimisant la nécessité de transporter les en-têtes HTTP à chaque requête et réponse.
Multiplexage de connexion La latence peut avoir un impact énorme sur les temps de chargement des pages et l’expérience utilisateur final. Le multiplexage de connexion surmonte ce problème en envoyant plusieurs demandes et réponses sur une seule connexion.
Serveur Push Le serveur Push permet au serveur de transférer le contenu de manière proactive vers le navigateur client, en évitant les retards aller-retour. Cette fonctionnalité met en cache les réponses dont le client a besoin, réduit le nombre de trajets aller-retour et améliore le temps de rendu de la page. Important : l’appliance Citrix ADC ne prend pas en charge la fonctionnalité de transmission du serveur.
Pas de blocage de la tête de ligne Sous HTTP/1.1, les navigateurs peuvent télécharger une ressource à la fois par connexion. Lorsqu’un navigateur doit télécharger une ressource volumineuse, il bloque le téléchargement de toutes les autres ressources jusqu’à ce que le premier téléchargement soit terminé. HTTP/2 surmonte ce problème avec une approche multiplexage. Il permet au navigateur client de télécharger d’autres composants Web en parallèle sur la même connexion et de les afficher dès qu’ils sont disponibles.
Priorité des demandes Toutes les ressources n’ont pas la même priorité lorsque le navigateur affiche une page Web. Pour accélérer le temps de chargement, tous les navigateurs modernes hiérarchisent les demandes par type d’actif, leur emplacement sur la page, et même par priorité apprise lors de visites précédentes. Avec HTTP/1.1, le navigateur a une capacité limitée d’utiliser les données de priorité, car ce protocole ne prend pas en charge le multiplexage, et il n’y a aucun moyen de communiquer la priorisation des demandes par le serveur. Le résultat est une latence réseau inutile. HTTP/2 surmonte ce problème en permettant au navigateur d’envoyer toutes les requêtes. Le navigateur peut communiquer ses préférences de priorisation des flux via les dépendances et les pondérations des flux, ce qui permet aux serveurs d’optimiser la livraison des réponses. Important : l’appliance Citrix ADC ne prend pas en charge la fonctionnalité de hiérarchisation des demandes.

Fonctionnement de HTTP/2

Une appliance Citrix ADC prend en charge HTTP/2 côté client et serveur. Du côté client, l’appliance Citrix ADC agit comme un serveur qui héberge un serveur virtuel HTTP/HTTPS pour HTTP/2. Du côté back-end, Citrix ADC agit en tant que client pour les serveurs liés au serveur virtuel.

Par conséquent, l’appliance Citrix ADC maintient des connexions distinctes du côté client ainsi que du côté serveur. L’appliance Citrix ADC dispose de configurations HTTP/2 distinctes pour le côté client et le côté serveur.

HTTP/2 pour HTTPS (SSL) configuration d’équilibrage de charge

Pour une configuration d’équilibrage de charge HTTPS, l’appliance Citrix ADC utilise l’extension TLS ALPN (RFC 7301) pour déterminer si le client/serveur prend en charge HTTP/2. Si c’est le cas, l’appliance choisit HTTP/2 comme protocole de couche d’application pour transmettre des données (comme décrit dans la section 3.3 de la RFC 7540) du côté client/serveur. L’appliance utilise l’ordre de préférence suivant lors du choix du protocole de couche application via l’extension ALPN TLS :

  • HTTP/2 (si activé dans le profil HTTP)
  • SPDY (si activé dans le profil HTTP)
  • HTTP/1.1

HTTP/2 pour la configuration d’équilibrage de charge HTTP

Pour une configuration d’équilibrage de charge HTTP, l’appliance Citrix ADC utilise l’une des méthodes suivantes pour commencer à communiquer avec le client/serveur à l’aide de HTTP/2.

Remarque :

Dans les descriptions de méthodes suivantes, le client et le serveur sont des termes généraux pour une connexion HTTP/2. Par exemple, pour une configuration d’équilibrage de charge d’une appliance Citrix ADC utilisant HTTP/2, l’appliance Citrix ADC agit comme un serveur côté client et agit comme un client côté serveur.

  • Mise àniveau HTTP/2. Un client envoie une requête HTTP/1.1 à un serveur. La demande inclut un en-tête de mise à niveau, qui demande au serveur de mettre à niveau la connexion vers HTTP/2. Si le serveur prend en charge HTTP/2, le serveur accepte la demande de mise à niveau et la notifie dans sa réponse. Le client et le serveur commencent à communiquer en utilisant HTTP/2 après que le client a reçu la réponse de confirmation de mise à niveau.

  • HTTP/2 direct. Un client commence directement à communiquer avec un serveur dans HTTP/2 au lieu d’utiliser la méthode de mise à niveau HTTP/2. Si le serveur ne prend pas en charge HTTP/2 ou n’est pas configuré pour accepter directement les requêtes HTTP/2, il supprime les paquets HTTP/2 du client. Cette méthode est utile si l’administrateur du périphérique client sait déjà que le serveur prend en charge HTTP/2.

  • Direct HTTP/2 en utilisant Alternative Service (ALT-SVC). Un serveur annonce qu’il prend en charge HTTP/2 à un client en incluant un champ Alternative Service (ALT-SVC) dans sa réponse HTTP/1.1. Si le client est configuré pour comprendre le champ ALT-SVC, le client et le serveur commencent à communiquer directement en utilisant HTTP/2 après que le client a reçu la réponse.

L’appliance Citrix ADC fournit des options configurables dans un profil HTTP pour les méthodes HTTP/2. Ces options HTTP/2 peuvent être appliquées au côté client ainsi qu’au côté serveur d’une configuration d’équilibrage de charge HTTPS ou HTTP. Pour plus d’informations sur les méthodes et options HTTP/2, reportez-vous auOptions HTTP/2PDF.

Avant de commencer

Avant de commencer à configurer HTTP/2 sur une appliance Citrix ADC, notez les points suivants :

  • L’appliance Citrix ADC prend en charge HTTP/2 côté client et serveur.
  • L’appliance Citrix ADC ne prend pas en charge la fonctionnalité Push du serveur HTTP/2.
  • L’appliance Citrix ADC ne prend pas en charge la fonctionnalité de hiérarchisation des requêtes HTTP/2.
  • L’appliance Citrix ADC ne prend pas en charge la renégociation HTTP/2 SSL pour les configurations d’équilibrage de charge HTTPS.
  • L’appliance Citrix ADC ne prend pas en charge l’authentification NTLM HTTP/2.
  • HTTP/2 ne fonctionne pas si le mode User Source IP (USIP) est activé et si le mode proxy est désactivé sur l’appliance Citrix ADC.

Configuration de HTTP/2

La configuration de HTTP/2 pour une configuration d’équilibrage de charge (HTTPS ou HTTP) comporte les tâches suivantes :

  • Activez HTTP/2 et définissez les paramètres HTTP/2 facultatifs dans un profil HTTP. Activez HTTP/2 dans un profil HTTP. Lorsque vous n’activez HTTP/2 que dans un profil HTTP, l’appliance Citrix ADC utilise uniquement la méthode de mise à niveau (pour HTTP) ou la méthode ALPN TLS (pour HTTPS) pour communiquer en HTTP/2.

    Pour que l’appliance Citrix ADC utilise la méthode HTTP/2 directe, l’option Direct HTTP/2 doit être activée dans le profil HTTP. Pour que l’appliance Citrix ADC utilise le HTTP/2 direct à l’aide de la méthode de service alternative, l’option Alternative Service (altsvc) doit être activée dans le profil HTTP.

  • Liez le profil HTTP à un serveur virtuel ou à un service. Liez le profil HTTP à un serveur virtuel pour configurer HTTP/2 pour le côté client de la configuration d’équilibrage de charge. Liez le profil HTTP à un service pour configurer HTTP2 pour le côté serveur de la configuration d’équilibrage de charge.

Remarque :

Citrix recommande de lier des profils HTTP distincts pour le côté client et le côté serveur.

  • Activez le paramètre global pour la prise en charge côté serveur HTTP/2. Activez le paramètre HTTP global HTTP/2 Service Side(HTTP2ServerSide ) pour activer la prise en charge HTTP/2 côté serveur de toutes les configurations d’équilibrage de charge configurées HTTP/2.

    HTTP/2 ne fonctionne pas du côté serveur des configurations d’équilibrage de charge si le HTTP/2 Service Side est désactivé, même si le HTTP/2 est activé sur le profil HTTP lié aux services d’équilibrage de charge associés.

Procédures de ligne de commande Citrix ADC :

Pour activer HTTP/2 et définir les paramètres HTTP/2 à l’aide de la ligne de commande Citrix ADC

  • Pour activer HTTP/2 et définir les paramètres HTTP/2 lors de l’ajout d’un profil HTTP, à l’invite de commandes, tapez :

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

  • Pour activer HTTP/2 et définir les paramètres HTTP/2 lors de la modification d’un profil HTTP, à l’invite de commandes, tapez :

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

Pour lier le profil HTTP à un serveur virtuel à l’aide de la ligne de commande Citrix ADC

À l’invite de commandes, tapez :

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

Pour lier le profil HTTP à un service d’équilibrage de charge à l’aide de la ligne de commande Citrix ADC

À l’invite de commandes, tapez :

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

Pour activer la prise en charge HTTP/2 globalement côté serveur à l’aide de la ligne de commande Citrix ADC

À l’invite de commandes, tapez :

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

Pour activer HTTP/2 et définir les paramètres HTTP/2 à l’aide de l’interface graphique Citrix ADC

  1. Accédez à Système > Profils, puis cliquez sur l’onglet Profils HTTP.
  2. Activez HTTP/2 lors de l’ajout d’un profil HTTP ou de la modification d’un profil HTTP existant.

Pour lier le profil HTTP à un serveur virtuel à l’aide de l’interface graphique Citrix ADC

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels, puis ouvrez le serveur virtuel.
  2. Dans Paramètres avancés, cliquez sur + Profil HTTPpour lier le profil HTTP créé au serveur virtuel.

Pour lier le profil HTTP à un service d’équilibrage de charge à l’aide de l’interface graphique Citrix ADC

  1. Accédez à Gestion du trafic > Équilibrage de charge > Service, puis ouvrez le service.
  2. Dans Paramètres avancés, cliquez sur + Profil HTTPpour lier le profil HTTP créé au service.

Pour activer la prise en charge HTTP/2 globalement côté serveur à l’aide de l’interface graphique

Accédez à Système > Paramètres, cliquez sur Modifier les paramètres HTTP et activez HTTP/2 Server Side.

Exemples de configurations

Dans l’exemple de configuration suivant, HTTP/2 et HTTP/2 direct sont activés sur le profil HTTP HTTP-PROFILE-HTTP2-CLIENT-SIDE. Le profil est lié au serveur virtuel LB-VS-1.

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

Dans l’exemple de configuration suivant, HTTP/2 et service alternatif (ALT-SVC) est activé sur le profil HTTP HTTP-PROFILE-HTTP2-SERVER-SIDE. Le profil est lié au service LB-SERVICE-1.

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

Configuration HTTP/2