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 est111.222.333.444
, le jeton{client_ip}
prend la valeur111.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 est111.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
- Décalages dans la plage, pas de longueurs :
{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 :
- Comportement de mise en cache de chaîne de requête dans la remplacement de configuration d’itinéraire
- Modifier l’en-tête de requête
- Modifier l’en-tête de réponse
- Redirection d’URL
- Réécrire URL
Étapes suivantes
- Découvrez-en plus sur l’ensemble de règles Azure Front Door.
- Découvrez-en plus sur les Conditions de correspondance d’un ensemble de règles.
- Découvrez-en plus sur les actions d’un ensemble de règles.