Une réécriture de la demande HTTP est appliquée à la demande HTTP provenant du client.

Conditions préalables

Vérifiez qu'un serveur virtuel HTTP de couche 7 est disponible. Reportez-vous à la section Ajouter des serveurs virtuels HTTP de couche 7.

Les règles d'équilibreur de charge prennent en charge REGEX pour les types de correspondances. Le modèle REGEX de style PCRE est pris en charge avec quelques limitations pour les cas d'utilisation avancés. Lorsque REGEX est utilisé dans des conditions de correspondance, les groupes de capture nommés sont pris en charge. Reportez-vous à la section Expressions régulières dans les règles d'équilibreur de charge.

Procédure

  1. Ouvrez le serveur virtuel HTTP de couche 7.
  2. Dans la section Règles d'équilibreur de charge, en regard de Phase de réécriture de la demande, cliquez sur Définir > Ajouter une règle pour configurer les règles d'équilibreur de charge pour la phase de réécriture de la demande HTTP.
  3. Dans la liste déroulante, sélectionnez une condition de correspondance. Les conditions de correspondance sont utilisées pour faire correspondre le trafic d'application passant par les équilibreurs de charge. Plusieurs conditions de correspondance peuvent être spécifiées dans une règle d'équilibreur de charge. Chaque condition de correspondance définit un critère pour le trafic d'application.
    Condition de correspondance prise en charge Description
    Méthode de demande HTTP Correspondance à une méthode de demande HTTP.

    http_request.method - valeur à faire correspondre

    URI de demande HTTP Correspondance à l'URI d'une demande HTTP sans arguments de requête.

    http_request.uri - valeur à faire correspondre

    Arguments d'URI de demande HTTP

    Utilisé pour correspondre aux arguments d'URI aka chaîne de requête des messages de demande HTTP, par exemple, dans l'URI http://example.com?foo=1&bar=2, « foo=1&bar=2 » est la chaîne de requête contenant des arguments d'URI. Dans un schéma d'URI, la chaîne de requête est indiquée par le premier point d'interrogation (« ? ») et se termine par un caractère dièse (« # ») ou par la fin de l'URI.

    http_request.uri_arguments - valeur à faire correspondre

    Version de la demande HTTP Utilisé pour correspondre à la version du protocole HTTP des messages de demande HTTP

    http_request.version - valeur à faire correspondre

    En-tête de demande HTTP Utilisé pour correspondre aux messages de demande HTTP par champ d'en-tête HTTP. Les champs d'en-tête HTTP sont des composants de la section d'en-tête des messages de demande et de réponse HTTP. Ils définissent les paramètres de fonctionnement d'une transaction HTTP.

    http_request.header_name - nom d'en-tête à faire correspondre

    http_request.header_value - valeur à faire correspondre

    Cookie de demande HTTP Utilisé pour correspondre aux messages de demande HTTP par cookie, qui est un type spécifique d'en-tête HTTP. match_type et case_sensitive définissent comment comparer la valeur du cookie.

    http_request.cookie_value - valeur à faire correspondre

    Corps de la demande HTTP Correspondance au contenu du corps d'une demande HTTP.

    http_request.body_value - valeur à faire correspondre

    SSL client Correspondance à l'ID de profil SSL du client.

    ssl_profile_id - valeur à faire correspondre

    Port d'en-tête TCP Correspondance au port TCP source ou de destination.

    tcp_header.source_port - port source à faire correspondre

    tcp_header.destination_port - port de destination à faire correspondre
    Source d'en-tête IP Correspond aux champs d'en-tête IP dans des messages HTTP. Le type de source doit être une adresse IP unique, une plage d'adresses IP ou un groupe. Reportez-vous à la section Ajouter un groupe.
    • Si Source d'en-tête IP est sélectionnée, avec un type de source d'adresse IP, l'adresse IP source des messages HTTP doit correspondre aux adresses IP qui sont configurées dans les groupes. Les adresses IPv4 et IPv6 sont prises en charge.
    • Si Source d'en-tête IP est sélectionnée avec un type de source Groupe, sélectionnez le groupe dans la liste déroulante.

    ip_header.source_address - adresse source à faire correspondre

    ip_header.destination_address - adresse de destination à faire correspondre
    Variable Créez une variable et attribuez une valeur à la variable.
    Sensible à la casse Définissez un indicateur sensible à la casse pour la comparaison des valeurs de l'en-tête HTTP. Si la valeur est true, la casse est significative lors de la comparaison de la valeur du corps HTTP.
  4. Dans le menu déroulant, sélectionnez un Type de correspondance : commence par, se termine par, est égal à, contient ou correspond à Regex. Type de correspondance est utilisé pour faire correspondre une condition à une action spécifiée.
    Type de correspondance Description
    Commence par Si la condition de correspondance commence par la valeur spécifiée, la condition correspond.
    Se termine par Si la condition de correspondance se termine par la valeur spécifiée, la condition correspond.
    Est égal à Si la condition de correspondance est identique à la valeur spécifiée, la condition correspond.
    Contient Si la condition de correspondance contient la valeur spécifiée, la condition correspond.
    Correspond à Regex Si la condition de correspondance correspond aux valeurs spécifiées, la condition correspond.
  5. Spécifiez l'URI.
  6. Dans le menu déroulant, sélectionnez une Stratégie de correspondance :
    Stratégie de correspondance Description
    Quelconque Indique qu'un hôte ou un chemin d'accès peut correspondre pour que cette règle soit considérée comme une correspondance.
    Tout

    Indique que l'hôte et le chemin d'accès doivent correspondre pour que cette règle soit considérée comme une correspondance.

  7. Dans le menu déroulant, sélectionnez une action :
    Actions Description
    Réécriture d'URI de demande HTTP

    Cette action est utilisée pour réécrire les URI dans les messages de demande HTTP correspondants. Spécifiez les arguments d'URI et l'URI dans cette condition pour réécrire les arguments d'URI et l'URI du message de demande HTTP correspondant aux nouvelles valeurs. Le schéma d'URI complet des messages HTTP a la syntaxe suivante : Scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] Le champ d'URI de cette action est utilisé pour réécrire la partie /path dans le schéma ci-dessus. Le champ Arguments d'URI est utilisé pour réécrire la partie de la requête. Les variables capturées et les variables intégrées peuvent être utilisées dans les champs et les arguments d'URI.

    1. Entrez l'URI de la demande HTTP
    2. Entrez la chaîne de requête de l'URI, qui contient généralement des paires de valeurs clés, par exemple : foo1=bar1&foo2=bar2.
    Réécriture d'en-tête de demande HTTP

    Cette action est utilisée pour réécrire les champs d'en-tête des messages de demande HTTP correspondant aux nouvelles valeurs spécifiées.

    1. Entrez le nom d'un message de demande HTTP de zone de texte d'en-tête.
    2. Entrez la valeur de l'en-tête.
    Suppression d'en-tête de demande HTTP

    Cette action est utilisée pour supprimer les champs d'en-tête des messages de demande HTTP à la phase HTTP_REQUEST_REWRITE. Une action peut être utilisée pour supprimer tous les en-têtes ayant le même nom d'en-tête. Pour supprimer des en-têtes avec des noms d'en-têtes différents, plusieurs actions doivent être définies.

    • Entrez le nom d'un champ d'en-tête du message de demande HTTP.
    Attribution de variable Créez une variable et attribuez-lui un nom et une valeur.
  8. Basculez le bouton Sensible à la casse pour définir un indicateur sensible à la casse pour la comparaison des valeurs d'en-tête HTTP.
  9. Basculez le bouton Inverser pour l'activer.
  10. Cliquez sur Enregistrer et Appliquer.