Contrôleur d'entrée Citrix ADC

Cas d’utilisation HTTP

Cette rubrique couvre divers cas d’utilisation HTTP que vous pouvez configurer sur Citrix ADC d’entrée à l’aide des annotations du Citrix ingress controller.

Le tableau suivant répertorie les cas d’utilisation HTTP avec des exemples d’annotations :

Cas d’utilisation Exemple d’annotation
Configuration de HTTP/2 ingress.citrix.com/frontend-httpprofile: '{"http2":"enabled"}'
  ingress.citrix.com/backend-httpprofile: '{"apache":{"http2direct" : "enabled"}'
  ingress.citrix.com/backend-httpprofile: '{"apache":{"http2direct" : "enabled", "altsvc":"enabled"}'
Gestion des délais d’expiration des sessions HTTP ingress.citrix.com/frontend-httpprofile: '{"apache":{"reqtimeout" : "10", "reqtimeoutaction":"drop"}}'
  ingress.citrix.com/frontend-httpprofile: '{"apache":{"reqtimeout" : "10", "adptimeout" : "enable"}}'
  ingress.citrix.com/backend-httpprofile: '{"apache":{"reusepooltimeout" : "20000"}}'

Configuration de HTTP/2

L’entrée Citrix ADC HTTP/2 côté client ainsi que côté serveur. Pour plus d’informations, consultez la section Prise en charge HTTP/2 sur Citrix ADC. Pour une configuration d’équilibrage de charge HTTP sur l’entrée Citrix ADC, il utilise l’une des méthodes suivantes pour commencer à communiquer avec le client/serveur à l’aide de HTTP/2.

L’entrée 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. Le Citrix ingress controller fournit des annotations pour configurer le profil HTTP sur le Citrix ADC d’entrée. Vous utilisez ces annotations pour configurer les différentes configurations d’équilibrage de charge HTTP sur le Citrix ADC d’entrée pour communiquer avec le client/serveur à l’aide de HTTP/2.

Remarque :

Assurez-vous que le paramètre global HTTP/2 côté service (HTTP2ServerSide) est activé sur Citrix ADC d’entrée. Pour plus d’informations, consultez nshttpparam.

Mise à niveau HTTP/2

Dans cette méthode, un client envoie une demande 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, il accepte la demande de mise à niveau et la notifie dans sa réponse. Le client et le serveur commencent à communiquer via HTTP/2 une fois que le client a reçu la réponse de confirmation de mise à niveau.

À l’aide des annotations pour les profils HTTP, vous pouvez configurer la méthode de mise à niveau HTTP/2 sur l’entrée Citrix ADC. Voici un exemple d’annotation de profil HTTP pour configurer la méthode de mise à niveau HTTP/2 sur l’entrée Citrix ADC :

ingress.citrix.com/frontend-httpprofile: '{"http2":"enabled"}'

HTTP/2 direct

Dans cette méthode, un client commence directement à communiquer avec un serveur en 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 de la machine cliente sait déjà que le serveur prend en charge HTTP/2.

À l’aide des annotations pour les profils HTTP, vous pouvez configurer la méthode HTTP/2 directe sur l’entrée Citrix ADC. Voici un exemple d’annotation de profil HTTP pour configurer la méthode HTTP/2 directe sur l’entrée Citrix ADC :

ingress.citrix.com/backend-httpprofile: '{"apache":{"http2direct" : "enabled"}'

HTTP/2 direct à l’aide d’un service alternatif (ALT-SVC)

Dans cette méthode, un serveur annonce qu’il prend en charge HTTP/2 à un client en incluant un champ Service alternatif (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 via HTTP/2 une fois que le client a reçu la réponse.

Voici un exemple d’annotation de profil HTTP pour configurer la méthode HTTP/2 directe à l’aide d’un service alternatif (ALT-SVC) sur l’entrée Citrix ADC :

ingress.citrix.com/backend-httpprofile: '{"apache":{"http2direct" : "enabled", "altsvc":"enabled"}'

Gestion des délais d’expiration des sessions HTTP

Pour gérer les différents types de requête HTTP et également pour atténuer les attaques telles que l’attaque DDoS de Slowloris, où les clients initient des connexions que vous souhaitez peut-être restreindre. Sur le Citrix ADC Ingress, vous pouvez configurer les délais d’expiration suivants pour ces scénarios :

  • reqTimeout et reqTimeoutAction
  • adptTimeout
  • reusePoolTimeout

reqTimeout et reqTimeoutAction

Dans Citrix ADC, vous pouvez configurer la valeur du délai d’expiration de la demande HTTP et l’action de délai d’expiration de la demande à l’aide du paramètre reqTimeout et reqTimeoutAction du profil HTTP. La valeur reqTimeout est définie en secondes et la demande HTTP doit se terminer dans le délai spécifié dans le paramètre reqTimeout. Si la demande HTTP ne se termine pas dans le délai défini, l’action de délai d’expiration de la demande spécifiée dans reqTimeoutAction est exécutée. La valeur minimale du délai d’expiration que vous pouvez définir est 0 et la valeur maximale est 86400. Par défaut, la valeur du délai d’expiration est définie sur 0.

À l’aide du paramètre reqTimeoutAction, vous pouvez spécifier le type d’action à effectuer au cas où la valeur du délai d’expiration de la demande HTTP (reqTimeout) est écoulée. Vous pouvez spécifier les actions suivantes :

  • RÉINITIALISER
  • ABANDONNER

À l’aide des annotations pour les profils HTTP, vous pouvez configurer l’action Délai d’expiration de la demande HTTP et Délai d’expiration de la demande HTTP. Voici un exemple d’annotation de profil HTTP pour configurer le délai d’expiration de la demande HTTP et l’action de délai d’expiration de la demande HTTP sur Citrix ADC d’entrée :

ingress.citrix.com/frontend-httpprofile: '{"apache":{"reqtimeout" : "10", "reqtimeoutaction":"drop"}}'

adptTimeout

Au lieu d’utiliser une valeur de délai d’expiration définie pour les sessions demandées, vous pouvez également activer adptTimeout. Le paramètre adptTimeout adapte le délai d’attente de la demande en fonction des conditions d’écoulement. Si cette option est activée, le délai d’expiration de la demande est augmenté ou diminué en interne et appliqué au flux. Par défaut, ce paramètre est défini sur DÉSACTIVÉ.

À l’aide d’annotations pour les profils HTTP, vous pouvez activer ou désactiver le paramètre adpttimeoutcomme suit :

ingress.citrix.com/frontend-httpprofile: '{"apache":{"reqtimeout" : "10", "adptimeout" : "enable"}}'

reusePoolTimeout

Vous pouvez configurer une valeur de délai d’expiration du pool de réutilisation pour vider toutes les connexions de serveur inactives à partir du pool de réutilisation. Si le serveur est inactif pendant la durée configurée, les connexions correspondantes sont vidées.

La valeur minimale du délai d’expiration que vous pouvez définir est 0 et la valeur maximale est 31536000. Par défaut, la valeur du délai d’expiration est définie sur 0.

À l’aide d’annotations pour les profils HTTP, vous pouvez configurer la valeur de délai d’expiration requise comme suit :

ingress.citrix.com/backend-httpprofile: '{"apache":{"reusepooltimeout" : "20000"}}'
Cas d’utilisation HTTP