Partager via


Variables de serveur de l’ensemble de règles Azure Front Door

Les variables de serveur de l’ensemble de règles permettent d’accéder aux informations structurées sur la requête lorsque vous utilisez les Ensembles de règles.

Lorsque vous utilisez des conditions de correspondance d’ensemble de règles, les variables de serveur sont disponibles comme conditions de correspondance afin que vous puissiez identifier les requêtes avec des propriétés spécifiques.

Lorsque vous utilisez des actions d’ensemble de règles, vous pouvez utiliser des variables de serveur pour modifier dynamiquement les en-têtes de requête et de réponse, et les URL de réécriture, les chemins d’accès et les chaînes de requête, par exemple quand une nouvelle page est chargée ou qu’un formulaire est publié.

Remarque

La variable serveur est disponible uniquement avec les niveaux Standard et Premium d’Azure Front Door.

Variables prises en charge

Nom de la variable Description
socket_ip Adresse IP de la connexion directe à la périphérie Azure Front Door. Si le client a utilisé un proxy HTTP ou un équilibreur de charge pour envoyer la requête, la valeur de socket_ip est l’adresse IP du proxy ou de l’équilibreur de charge.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez l'adresse de socket.
client_ip Adresse IP du client à l’origine de la requête. S’il existait un en-tête X-Forwarded-For dans la requête, l’adresse IP du client est sélectionnée dans l’en-tête.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez l'adresse distante et configurez l’opérateur sur Correspondance IP ou sur Non correspondance IP.
client_port Adresse IP du port du client qui a effectué la requête.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez le port client.
hostname Nom d’hôte dans la requête du client.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez le nom d'hôte.
geo_country Indique le pays/la région d’origine du demandeur au travers de son préfixe international.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez l'adresse distante et configurez l’opérateur sur Géocorrespondance ou sur Non-correspondance de zone géographique.
http_method Méthode utilisée pour effectuer la requête d’URL, comme GET ou POST.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez la méthode de requête.
http_version Protocole de requête. Généralement HTTP/1.0, HTTP/1.1 ou HTTP/2.0.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez la version d’hôte.
query_string Liste de paires variable/valeur suivant le ? dans l’URL demandée.
Par exemple, dans la requête http://contoso.com:8080/article.aspx?id=123&title=fabrikam, la valeur query_string est id=123&title=fabrikam.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez la chaîne de requête.
request_scheme Schéma de la requête : http ou https.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez le protocole de requête.
request_uri URI complet de la requête d’origine (avec les arguments).
Par exemple, dans la requête http://contoso.com:8080/article.aspx?id=123&title=fabrikam, la valeur request_uri est http://contoso.com:8080/article.aspx?id=123&title=fabrikam.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez l’URL de requête.
ssl_protocol Protocole d’une connexion TLS établie.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez le protocole SSL.
server_port Port du serveur qui a accepté une requête.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez le port serveur.
url_path Identifie la ressource spécifique dans l’hôte à laquelle le client web souhaite accéder. Il s’agit de la partie de l’URI de requête sans les arguments ou la barre oblique de début.
Par exemple, dans la requête http://contoso.com:8080/article.aspx?id=123&title=fabrikam, la valeur url_path est article.aspx.
Azure Front Door prend en charge la capture dynamique du chemin d’URL avec la variable de serveur {url_path:seg#}, et convertit le chemin d’URL en minuscules ou en majuscules avec {url_path.tolower} ou {url_path.toupper}. Pour plus d’informations, consultez Format de variable de serveur et Variables de serveur.
Pour accéder à cette variable de serveur dans une condition de correspondance, utilisez la condition Chemin de demande.

Format de la variable serveur

Lorsque vous utilisez des actions d’ensemble de règles, spécifiez les variables de serveur en utilisant les formats suivants :

  • {variable} : Inclut l’intégralité de la variable serveur. Par exemple, si l’adresse IP du client est 111.222.333.444, le jeton {client_ip} prend la valeur 111.222.333.444.

  • {variable:offset}: Inclut la variable serveur après un décalage spécifique, jusqu’à la fin de la variable. Le décalage est basé sur zéro. Par exemple, si l’adresse IP du client est 111.222.333.444, le jeton {client_ip:3} prend la valeur .222.333.444.

  • {variable:offset:length}: Inclut la variable serveur après un décalage spécifique, jusqu’à la longueur spécifiée. Le décalage est basé sur zéro. Par exemple, lorsque la variable var est « AppId=01f592979c584d0f9d679db3e66a3e5e »,

    • Décalages dans la plage, pas de longueurs : {var:0} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:6} = 01f592979c584d0f9d679db3e66a3e5e, {var:-8} = e66a3e5e
    • Décalages hors limites, pas de longueurs : {var:-128} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:128} = null
    • Décalages et longueurs dans la plage : {var:0:5} = AppId, {var:7:7} = 1f59297, {var:7:-7} = 1f592979c584d0f9d679db3e
    • Longueurs de zéro : {var:0:0} = null, {var:4:0} = null
    • Décalages dans la plage et longueurs hors limites : {var:0:100} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:5:100} = =01f592979c584d0f9d679db3e66a3e5e, {var:0:-48} = null, {var:4:-48} = null
  • {url_path:seg#} : autorise les utilisateurs à capturer et utiliser le segment de chemin d’URL souhaité dans la redirection d’URL, la réécriture d’URL ou toute action significative. L’utilisateur peut également capturer plusieurs segments en utilisant le même style que la capture de sous-chaîne {url_path:seg1:3}. Par exemple, pour un modèle source /id/12345/default et une destination de réécriture d’URL /{url_path:seg1}/home, le chemin d’URL attendu après la réécriture est /12345/home. Pour une capture de plusieurs segments, quand le modèle source est /id/12345/default/location/test, une destination de réécriture d’URL /{url_path:seg1:3}/home donne /12345/default/location/home. Comme la capture de segment inclut le chemin de l’emplacement, si la route est /match/*, le segment 0 correspond.

    Le décalage correspond à l’index du segment de début et la longueur fait référence au nombre de segments à capturer, y compris celui à l’index = décalage.

    En supposant que le décalage et la longueur sont positifs, la logique suivante s’applique :

    • Si la longueur n’est pas incluse, capturez le segment à l’index = décalage.
    • Lorsque la longueur est incluse, capturez les segments de l’index = décalage jusqu’à l’index = décalage + longueur.

    Les cas spéciaux suivants sont également traités :

    • Si le décalage est négatif, comptez vers l’arrière à partir de la fin du chemin pour obtenir le segment de départ.
    • Si le décalage est une valeur négative supérieure ou égale au nombre de segments, il est défini sur 0.
    • Si le décalage est supérieur au nombre de segments, le résultat est vide.
    • Si la longueur est 0, renvoie le segment unique spécifié par le décalage
    • Si la longueur est négative, elle est traitée comme un deuxième décalage. Le calcul se fait vers l’arrière à partir de la fin du chemin. Si la valeur est inférieure au décalage, le résultat est une chaîne vide.
    • Si la longueur est supérieure au nombre de segments, retourne ce qui reste dans le chemin.
  • {url_path.tolower}/{url_path.toupper} : convertit le chemin d’URL en minuscules ou en majuscules. Par exemple, une destination {url_path.tolower} dans la réécriture/redirection d’URL pour /lowercase/ABcDXyZ/EXAMPLE donne /lowercase/abcdxyz/example. Une destination {url_path.toupper} dans la réécriture/redirection d’URL pour /ABcDXyZ/example donne /ABCDXYZ/EXAMPLE.

Actions d’ensemble de règles prises en charge

Les variables serveur sont prises en charge sur les actions d’ensemble de règles suivantes :

Étapes suivantes