Citrix ADC

Nouvelle tentative de demande

Lorsqu’un serveur principal réinitialise une connexion TCP, la fonctionnalité de nouvelle tentative de requête transmet la demande au serveur disponible suivant, au lieu d’envoyer la réinitialisation au client. En effectuant l’équilibrage de rechargement, le client enregistre RTT lorsque l’appliance lance la même demande au prochain service disponible.

La fonctionnalité de nouvelle tentative de demande s’applique au scénario d’erreur suivant :

  • Le serveur principal réinitialise une connexion TCP lorsque l’appliance envoie un paquet de données de requête.

Fonctionnement de la nouvelle tentative de demande

Le diagramme suivant montre comment les composants interagissent les uns avec les autres.

Fonctionnement de la nouvelle tentative de demande

  1. Le processus commence par l’activation de la fonctionnalité AppQoE sur votre appliance.
  2. Lorsque le client envoie une requête HTTP ou HTTPS, le serveur virtuel d’équilibrage de charge envoie la requête au serveur principal.
  3. Si le service demandé n’est pas disponible, le serveur principal réinitialise la connexion TCP.
  4. Si la configuration AppQoE a « réessayer » activé avec le nombre souhaité de tentatives de nouvelle tentative spécifié, le serveur virtuel d’équilibrage de charge utilise l’algorithme d’équilibrage de charge configuré pour transférer la demande au serveur d’applications disponible suivant.
  5. Une fois que le serveur virtuel d’équilibrage de charge reçoit la réponse, l’appliance transmet la réponse au client.
  6. Si les serveurs principaux disponibles sont égaux ou inférieurs au nombre de tentatives et si tous les serveurs envoient une réinitialisation, l’appliance répondra à une erreur de serveur interne de 500. Considérez un scénario avec cinq serveurs disponibles et le nombre de tentatives est défini sur six. Si les cinq serveurs réinitialisent la connexion, l’appliance renvoie une erreur serveur interne 500 au client.
  7. De même, si le nombre de serveurs principaux est supérieur au nombre de nouvelles tentatives et si les serveurs principaux réinitialisent la connexion, l’appliance transmet la réinitialisation au client. Considérez un scénario avec trois serveurs back-end et le nombre de tentatives est défini comme deux. Si les trois serveurs réinitialisent la connexion, l’appliance envoie une réponse de réinitialisation au client.

Configurer une nouvelle tentative de demande pour la méthode GET

Pour configurer la fonctionnalité de nouvelle tentative pour la méthode GET, vous devez effectuer les étapes suivantes.

  1. Activer AppQoe
  2. Ajouter une action AppQoe
  3. Ajouter une stratégie AppQoe
  4. Lier le serveur virtuel d’équilibrage de charge à la stratégie AppQoE

Activer AppQoe

À l’invite de commandes, tapez : enable ns feature appqoe

Ajouter une action AppQoe

Vous devez configurer une action AppQoE pour spécifier si vous souhaitez que l’appliance réessaye après une réinitialisation TCP et le nombre de tentatives de nouvelle tentative.

add appqoe action reset_action -retryOnReset ( YES | NO ) -numretries <positive_integer>]

Exemple :

add appqoe action reset_action –retryOnReset YES –numretries 5

Où, retryOnReset. Activez une nouvelle tentative si le serveur principal réinitialise une connexion TCP. numretries. Réessayez le nombre.

Ajouter une stratégie AppQoe

Pour implémenter AppQoe, vous devez configurer la stratégie AppQoe pour hiérarchiser les requêtes HTTP ou SSL entrantes dans une file d’attente spécifique.

À l’invite de commandes, tapez :

add appqoe policy <name> -rule <expression> -action <string>

Exemple :

add appqoe policy reset_policy -rule http.req.method.eq(get) -action reset_action

Lier le serveur virtuel d’équilibrage de charge à la stratégie Appqoe

Lorsqu’un serveur principal réinitialise une demande de paquets TCP et si vous souhaitez que le serveur virtuel d’équilibrage de charge transmette la demande au service disponible suivant, vous devez lier le serveur virtuel d’équilibrage de charge à la stratégie AppQoE.

À l’invite de commandes, tapez :

bind lb vserver <name> ((<serviceName> (-policyName <string> [-priority <positive_integer>] [-gotoPriorityExpression <expression>] [-type ( REQUEST | RESPONSE )]

Exemple :

bind lb vserver v1 -policyName reset_policy -type REQUEST -priority 1

Configurer une nouvelle tentative de demande pour les requêtes POST

Vous devez toujours faire preuve de prudence lorsque vous rechargez des demandes d’équilibrage qui écrivent des données dans le serveur principal. Pour de telles demandes, assurez-vous que la longueur du contenu est courte. Si la longueur du contenu est longue, cela peut entraîner une consommation de ressources. Suivez les étapes ci-dessous pour configurer l’équilibrage de rechargement pour les requêtes POST.

  1. Activer AppQoe
  2. Ajouter une action AppQoe
  3. Ajouter une stratégie AppQoe
  4. Lier le serveur virtuel d’équilibrage de charge à la stratégie AppQoE

Activer AppQoe

À l’invite de commandes, tapez :

enable ns feature appqoe

Ajouter une action Appqoe

Vous devez ajouter une action AppQoE pour réessayer après une réinitialisation TCP et le nombre de tentatives de nouvelle tentative.

add appqoe action reset_action -retryOnReset ( YES | NO ) -numretries <positive_integer>]

Exemple :

add appqoe action reset_action –retryOnReset YES –numretries 5

Ajouter une stratégie Appqoe

Pour implémenter AppQoe, vous devez configurer la stratégie AppQoe pour définir comment mettre en file d’attente les connexions dans une file d’attente spécifique.

À l’invite de commandes, tapez :

add appqoe policy <name> -rule <expression> -action <string>

Exemple :

add appqoe policy reset_policy -rule HTTP.REQ.CONTENT_LENGTH.le(2000) -action reset_action

Remarque :

Vous pouvez utiliser cette configuration si vous préférez restreindre la fonctionnalité de nouvelle tentative de demande pour une longueur de contenu inférieure à 2000.

Lier le serveur virtuel d’équilibrage de charge à la stratégie AppQoE

Lorsqu’un serveur principal réinitialise une demande de paquets TCP et si vous souhaitez que le serveur virtuel d’équilibrage de charge transmette la demande au service disponible suivant via une file d’attente spécifique, vous devez lier le serveur virtuel d’équilibrage de charge à la stratégie AppQoE.

À l’invite de commandes, tapez :

bind lb vserver <name> ((<serviceName> (-policyName <string> [-priority <positive_integer>] [-gotoPriorityExpression <expression>] [-type ( REQUEST | RESPONSE )]

Exemple : bind lb vserver v1 -policyName reset_policy -type REQUEST -priority 1

Configurer la stratégie AppQoE pour une nouvelle tentative de demande à l’aide de l’interface graphique Citrix ADC

  1. Accédez à AppExpert > AppQoe > Stratégies.
  2. Dans la page Stratégies AppQoe, cliquez sur Ajouter.
  3. Dans la page Créer une stratégie AppQoE, définissez les paramètres suivants : a. Name. AppQoE policy name b. Action. Ajouter ou modifier une action. Pour créer une action, reportez-vous àCréer une action AppQoE la section. c. Expression. Sélectionnez ou entrez une expressionHTTP.REQ.CONTENT_LENGTH.le (2000) de stratégie.
  4. Cliquez sur Créer et Fermer.

    Stratégie AppQoE pour la nouvelle tentative de requête ou l'équilibrage de rechargement

Configurer l’action AppQoE pour l’équilibrage des nouvelles tentatives de demande à l’aide de l’interface graphique Citrix ADC

  1. Accédez à AppExpert > AppQoe > Action.
  2. Dans la page Actions AppQoe, cliquez sur Ajouter.
  3. Dans la page Créer une action AppQoe, définissez les paramètres suivants pour une nouvelle tentative lors de la réinitialisation TCP : a. Réessayez lors de la réinitialisation de TCP. Activez la case à cocher pour activer une nouvelle tentative de réinitialisation TCP. b. Retry Count. Entrez le nombre de nouvelles tentatives.
  4. Cliquez sur Créer et Fermer.

    Configurer l'action AppQoe pour l'équilibrage de la nouvelle tentative de requête

Nouvelle tentative de demande