Configurer la persistance en fonction des règles définies par l’utilisateur

Lorsque la persistance basée sur des règles est configurée, l’appliance Citrix ADC crée une session de persistance basée sur le contenu de la règle appariée avant de diriger la demande vers le service sélectionné par la méthode d’équilibrage de charge configurée. Par la suite, il dirige toutes les demandes qui correspondent à la règle vers le même service. Vous pouvez configurer la persistance basée sur des règles pour les services de type HTTP, SSL, RADIUS, ANY, TCP et SSL_TCP.

La persistance basée sur des règles nécessite une expression de syntaxe classique ou par défaut. Vous pouvez utiliser une expression classique pour évaluer les en-têtes de demande ou utiliser une expression de syntaxe par défaut pour évaluer les en-têtes de demande, les données de formulaire Web dans une demande, les en-têtes de réponse ou les corps de réponse. Par exemple, vous pouvez utiliser une expression classique pour configurer la persistance en fonction du contenu de l’en-tête HTTP Host. Vous pouvez également utiliser une expression de syntaxe par défaut pour configurer la persistance en fonction des informations de session d’application dans un cookie de réponse ou un en-tête personnalisé. Pour plus d’informations sur la création et l’utilisation d’expressions syntaxiques classiques et par défaut, reportez-vous à la section Stratégies et expressions.

Les expressions que vous pouvez configurer dépendent du type de service pour lequel vous configurez la persistance basée sur des règles. Par exemple, certaines expressions spécifiques à RADIUS ne sont pas autorisées pour des protocoles autres que RADIUS, et les expressions basées sur des options TCP ne sont pas autorisées pour des types de service autres que le type AUY. Pour les types de service TCP et SSL_TCP, vous pouvez utiliser des expressions qui évaluent les données du protocole TCP/IP, les données de couche 2, les options TCP et les charges utiles TCP.

Remarque : Pour un cas d’utilisation impliquant la configuration de la persistance basée sur des règles sur la base des données du protocole « FIX » (Financial Information eXchange) transmises via TCP, reportez-vous à la section Configuration de la persistance basée sur une règle basée sur une paire nom-valeur dans un flux d’octets TCP.

La persistance basée sur des règles peut être utilisée pour maintenir la persistance avec des entités telles que les appliances Branch Repeater, les plug-ins Branch Repeater, les serveurs de cache et les serveurs d’applications.

Remarque : Sur un serveur virtuel ANY, vous ne pouvez pas configurer la persistance basée sur des règles pour les réponses.

Pour configurer la persistance en fonction d’une règle définie par l’utilisateur, vous devez d’abord configurer la persistance comme décrit dansConfiguration des types de persistance qui ne nécessitent pas de règleet définir le type de persistance sur RULE. Vous effectuez ensuite les procédures ci-dessous. Vous pouvez configurer la persistance basée sur des règles à l’aide de l’utilitaire de configuration ou de l’interface de ligne de commande.

Pour configurer la persistance en fonction des règles définies par l’utilisateur à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set lb vserver <vserverName> [-rule <expression>][-resRule <expression>]

Exemple :

set lb vserver vsvr_name –rule http.req.header("cookie").value(0).typecast_nvlist_t('=',';').value("server")

set lb vserver vsvr_name –resrule http.res.header("set-cookie").value(0).typecast_nvlist_t('=',';').value("server")

Pour configurer la persistance en fonction des règles définies par l’utilisateur à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels, puis ouvrez le serveur virtuel.
  2. Dans la section Persistance, choisissez le type de persistance qui répond à vos besoins. Le type de persistance le plus approprié pour le serveur virtuel est disponible sous forme de boutons d’option. D’autres types de persistance applicables au type de serveur virtuel spécifique peuvent être sélectionnés dans la liste Autres.

image localisée

Remarque

Avant NetScaler version 12.0 build 56.20, tous les types de persistance sont disponibles dans une seule liste déroulante Persistence sans boutons d’option.

Exemple : Expression classique pour une charge utile de requête

L’expression classique suivante crée une session de persistance basée sur la présence d’un en-tête HTTP User-Agent qui contient la chaîne, « MyBrowser », et dirige toutes les demandes clientes ultérieures contenant cet en-tête et cette chaîne vers le même serveur qui a été sélectionné pour la demande initiale.

http en-tête User-Agent contient MyBrowser

Exemple : Expression de syntaxe par défaut pour un en-tête de requête

L’expression de syntaxe par défaut suivante fait exactement la même chose que l’expression classique précédente.

HTTP.REQ.HEADER(“User-Agent”).CONTAINS (“MyBrowser”)

L’expression suivante examine les réponses pour les cookies « serveur », puis dirige toutes les demandes contenant ce cookie vers le même serveur qui a été sélectionné pour la demande initiale.

HTTP.RES.HEADER(“SET-COOKIE”).VALUE(0).TYPECAST_NVLIST_T(‘=’,’;’).VALUE(“server”)