Tous les produits
Search
Centre de documentation

CDN:CDN variable reference

Dernière mise à jour :Oct 27, 2026

Lorsque vous configurez certaines fonctionnalités CDN, comme la modification des en-têtes de réponse sortants ou des en-têtes de requête, utilisez des variables pour obtenir le contexte de la requête ou de la réponse actuelle. Les variables renvoient des valeurs telles que la méthode de requête, l'URL et l'adresse IP du client, ce qui permet un contrôle précis. Cette rubrique décrit toutes les variables prises en charge par le CDN, avec des exemples de valeurs et des notes d'utilisation pour chaque variable.

Présentation des variables

Les variables CDN sont regroupées par domaine d'application : variables du domaine d'accès, variables du domaine de récupération auprès de l'origine (origin fetch) et variables de réponse :

  • Variables du domaine d'accès : Variables qui s'appliquent dans le domaine d'accès, où le nœud CDN traite les requêtes clients et génère la clé de cache.

  • Variables du domaine de récupération auprès de l'origine : Variables qui s'appliquent lors de la récupération auprès de l'origine. Certaines fonctionnalités sont déployées sur le module du domaine de récupération auprès de l'origine. Dans ce cas, les variables du domaine d'accès ne s'appliquent pas et doivent être remplacées par des variables du domaine de récupération auprès de l'origine.

  • Variables de réponse : Utilisez ces variables pour obtenir les en-têtes de réponse que le serveur d'origine renvoie au nœud CDN.

Le tableau suivant répertorie les groupes de variables et les variables dans chaque domaine d'application :

Domaine d'application

Groupe de variables

Variables

Le domaine d'accès

Méthode de requête

$request_method

Le domaine d'accès

Version HTTP

$server_protocol

Le domaine d'accès

URI

$uri, $raw_uri et $request_uri

Le domaine d'accès

Paramètres de requête

$args et $arg_<parameter-name>

Le domaine d'accès

En-têtes de requête

$http_<request-header-name>

Le domaine d'accès

Nom de domaine

$host

Le domaine d'accès

Protocole de requête

$scheme

Le domaine d'accès

Cookie

$cookie_<parameter-name>

Le domaine d'accès

Adresse IP et port

$remote_addr, $remote_port, $x_server_addr et $x_server_port

Le domaine d'accès

Géolocalisation IP et opérateur

$ip_isp_id, $ip_isp_en, $ip_country_id, $ip_country_en, $ip_region_id, $ip_region_en, $ip_city_id, $ip_city_en, $ip_longitude et $ip_latitude

Le domaine d'accès

SSL/TLS

$ssl_cipher, $ssl_protocol, $ssl_client_cert, $ssl_client_raw_cert, $ssl_client_serial, $ssl_verify, $ssl_client_s_dn et $ssl_client_i_dn

Le domaine d'accès

Nom du nœud

$hostname

Le domaine de récupération auprès de l'origine

Protocole

$http_x_client_scheme et $proxy_scheme

Le domaine de récupération auprès de l'origine

Serveur d'origine

$proxy_source

Variables de réponse

En-têtes de réponse de l'origine

$sent_http_<response-header-name>

Fonctionnalités prenant en charge les variables

Fonctionnalités dans le domaine d'accès

Fonctionnalités dans le domaine de récupération auprès de l'origine

Limites

Avant de référencer une variable, vérifiez les conditions et limites suivantes qui s'appliquent à l'ensemble des variables :

  • Les variables SSL/TLS s'appliquent uniquement aux requêtes HTTPS. Leurs valeurs sont vides lorsque ces variables sont référencées dans des requêtes HTTP.

  • Les variables $ssl_client_* ont des valeurs uniquement lorsque la vérification du certificat client (authentification mutuelle, ou mTLS) est configurée. Leurs valeurs sont vides pour les requêtes HTTPS standard.

  • La résolution GeoIP présente des limites de précision. Les champs au niveau de la ville et de longitude/latitude identifient généralement le centre-ville et ne conviennent pas aux cas d'utilisation de blocage nécessitant un géoblocage précis. Lorsqu'une adresse IP client ne peut pas être identifiée, les champs associés renvoient des valeurs par défaut (par exemple, le code pays renvoie XX et les valeurs de code numérique renvoient 0).

  • La variable $uri peut être modifiée par la logique interne de routage des requêtes du CDN, telle que la redirection ou la réécriture interne. L'utilisation de cette variable n'est pas recommandée. Pour obtenir un chemin inchangé, utilisez $raw_uri.

Conventions de nommage des variables d'en-tête

Lorsque le CDN traite les en-têtes de requête HTTP et les en-têtes de réponse, il les mappe automatiquement vers des variables internes. Les noms de variables doivent respecter les règles suivantes :

  • Préfixe fixe : Toutes les variables d'en-tête de requête doivent commencer par $http_ et toutes les variables d'en-tête de réponse doivent commencer par $sent_http_.

  • Conversion en minuscules : Toutes les lettres majuscules d'un nom d'en-tête doivent être converties en minuscules.

  • Remplacement des traits d'union : Tous les traits d'union (-) dans un nom d'en-tête doivent être remplacés par des underscores (_).

Exemples de conversion :

Nom d'en-tête d'origine

Variable convertie

Accept-Language

$http_accept_language

X-Forwarded-For

$http_x_forwarded_for

X-Customize-Header

$http_x_customize_header

Variables dans le domaine d'accès

Méthode de requête

$request_method

  • Signification : La méthode de requête HTTP utilisée par la requête actuelle.

  • Exemples de valeurs : GET, POST, HEAD, PUT, DELETE et autres.

Version HTTP

$server_protocol

  • Signification : La version du protocole HTTP utilisée par la requête actuelle.

  • Exemples de valeurs : HTTP/1.1 et HTTP/2.0.

URI

$uri

  • Signification : Le chemin d'URL de la requête actuelle, à l'exclusion des paramètres de requête.

  • Exemple de valeur : /1.txt.

  • Note : Cette valeur peut être modifiée par la logique interne de routage des requêtes du CDN, telle que la redirection ou la réécriture interne. L'utilisation de cette variable n'est pas recommandée. Pour obtenir un chemin inchangé, utilisez $raw_uri.

$raw_uri

  • Signification : Le chemin d'URL de la requête d'origine, à l'exclusion des paramètres de requête. La logique interne de routage des requêtes du CDN ne modifie pas cette valeur.

  • Exemple de valeur : /1.txt.

$request_uri

  • Signification : Le chemin d'URL complet de la requête d'origine, y compris les paramètres de requête.

  • Exemple de valeur : /1.txt?chapter=1&flag=on.

Paramètres de requête

$args

  • Signification : La chaîne complète des paramètres de requête dans l'URL (à l'exclusion de ?).

  • Exemple de valeur : chapter=1&flag=on.

$arg_<parameter-name>

  • Signification : La valeur d'un paramètre spécifique dans les paramètres de requête de l'URL. Remplacez <parameter-name> par le nom réel du paramètre.

  • Exemple de valeur : $arg_flag extrait les valeurs de l'URL /1.txt?chapter=1&flag=on. La valeur du paramètre flag est on.

En-têtes de requête

$http_<request-header-name>

  • Signification : La valeur d'un en-tête de requête HTTP spécifique dans la requête client. Remplacez <request-header-name> par le nom réel de l'en-tête de requête.

  • Exemples de valeurs : $http_user_agent représente la valeur de l'en-tête de requête User-Agent et $http_referer représente la valeur de l'en-tête de requête Referer.

  • Note : Les noms de variables d'en-tête de requête doivent respecter les conventions de nommage des variables d'en-tête.

Nom de domaine

$host

  • Signification : Le nom de domaine d'origine dans la requête client, qui correspond à la valeur de l'en-tête de requête Host: <domain-name>.

  • Exemple de valeur : www.example.com.

Protocole de requête

$scheme

  • Signification : Le type de protocole utilisé par la requête actuelle.

  • Exemples de valeurs : http ou https.

Adresse IP et port

$remote_addr

  • Signification : L'adresse IP du client.

  • Exemple de valeur : 30.40.XX.XXX.

$remote_port

  • Signification : Le numéro de port du client.

  • Exemple de valeur : 63213.

$x_server_addr

  • Signification : L'adresse IP de destination, qui est l'adresse IP virtuelle (VIP) que le nœud CDN expose vers l'extérieur.

  • Exemple de valeur : 122.228.XX.XXX.

$x_server_port

  • Signification : Le port de destination, qui est le port de service que le nœud CDN expose vers l'extérieur.

  • Exemples de valeurs : 80 ou 443.

Géolocalisation IP et opérateur

Le CDN utilise l'adresse IP du client ($remote_addr) pour résoudre sa géolocalisation et les informations sur son opérateur. Les valeurs de ces variables sont basées sur les résultats de la résolution GeoIP. La résolution GeoIP présente des limites de précision. Les champs au niveau de la ville et de longitude/latitude identifient généralement le centre-ville et ne conviennent pas aux cas d'utilisation de blocage nécessitant un géoblocage précis. Lorsqu'une adresse IP client ne peut pas être identifiée, les champs associés renvoient des valeurs par défaut (par exemple, le code pays renvoie XX et les valeurs de code numérique renvoient 0). Chaque dimension propose deux formes de valeur : un code (avec le suffixe _id) et un nom en anglais (avec le suffixe _en).

$ip_isp_id

  • Signification : Le code de l'opérateur auquel l'adresse IP du client appartient.

  • Exemple de valeur : Pour China Telecom, 100017.

$ip_isp_en

  • Signification : Le nom en anglais de l'opérateur auquel l'adresse IP du client appartient.

  • Exemple de valeur : Pour China Telecom, ChinaTelecom.

$ip_country_id

  • Signification : Le code du pays ou de la région auquel l'adresse IP du client appartient.

  • Exemple de valeur : Pour la Chine, CN.

$ip_country_en

  • Signification : Le nom en anglais du pays ou de la région auquel l'adresse IP du client appartient.

  • Exemple de valeur : Pour la Chine, China.

$ip_region_id

  • Signification : Le code de la région ou de la province auquel l'adresse IP du client appartient.

  • Exemple de valeur : Pour la province du Guangdong, 440000.

$ip_region_en

  • Signification : Le nom en anglais de la région ou de la province auquel l'adresse IP du client appartient.

  • Exemple de valeur : Pour la province du Guangdong, guangdong.

$ip_city_id

  • Signification : Le code de la ville auquel l'adresse IP du client appartient.

  • Exemple de valeur : Pour Shenzhen, 440300.

$ip_city_en

  • Signification : Le nom en anglais de la ville auquel l'adresse IP du client appartient.

  • Exemple de valeur : Pour Shenzhen, shenzhen.

$ip_longitude

  • Signification : La longitude de la ville auquel l'adresse IP du client appartient.

  • Exemple de valeur : Pour Shenzhen, 114.05787.

$ip_latitude

  • Signification : La latitude de la ville auquel l'adresse IP du client appartient.

  • Exemple de valeur : Pour Shenzhen, 22.54309.

SSL/TLS

Les variables SSL/TLS fournissent des informations de session sur les requêtes HTTPS.

Important
  • Ces variables s'appliquent uniquement aux requêtes HTTPS. Leurs valeurs sont vides lorsqu'elles sont référencées dans des requêtes HTTP.

  • Les variables $ssl_client_* nécessitent également que la vérification du certificat client soit configurée au préalable. Leurs valeurs sont vides pour les requêtes HTTPS standard.

$ssl_cipher

  • Signification : La suite de chiffrement (une combinaison d'algorithmes cryptographiques) utilisée par la requête actuelle.

  • Exemple de valeur : TLS_AES_256_GCM_SHA384.

$ssl_protocol

  • Signification : La version du protocole SSL/TLS utilisée par la requête actuelle.

  • Exemple de valeur : TLSv1.3.

$ssl_client_cert

  • Signification : Les données du certificat client (le contenu du certificat est renvoyé).

$ssl_client_raw_cert

  • Signification : Les données brutes du certificat client (l'utilisation est la même que celle de $ssl_client_cert et le texte original du certificat est conservé).

$ssl_client_serial

  • Signification : Le numéro de série du certificat client.

$ssl_verify

  • Signification : Le résultat de la vérification du certificat client. La valeur est SUCCESS lorsque la vérification réussit.

  • Exemple de valeur : SUCCESS.

$ssl_client_s_dn

  • Signification : Le nom distinctif (DN) du sujet du certificat client.

$ssl_client_i_dn

  • Signification : Le nom distinctif (DN) de l'émetteur du certificat client.

Nom du nœud

$hostname

  • Signification : Le nom d'hôte du nœud CDN qui traite la requête actuelle.

  • Exemple de valeur : cn2522 (le nom réel du nœud fait foi).

Variables dans le domaine de récupération auprès de l'origine

$scheme, $http_x_client_scheme et $proxy_scheme renvoient tous le type de protocole (http ou https), mais ils diffèrent par leur domaine d'application et par la valeur que chacun renvoie :

Variable

Domaine d'application

Description

$scheme

Le domaine d'accès

Le type de protocole utilisé par la requête actuelle

$http_x_client_scheme

Le domaine de récupération auprès de l'origine

Le type de protocole que le client utilise pour initier la requête (schéma client)

$proxy_scheme

Le domaine de récupération auprès de l'origine

Le type de protocole que le nœud CDN utilise pour la récupération auprès de l'origine (schéma de récupération auprès de l'origine)

Protocole

$http_x_client_scheme

  • Signification : Le type de protocole que le client utilise pour initier la requête (schéma client).

  • Exemples de valeurs : http ou https.

$proxy_scheme

  • Signification : Le type de protocole que le nœud CDN utilise pour la récupération auprès de l'origine (schéma de récupération auprès de l'origine).

  • Exemples de valeurs : http ou https.

Serveur d'origine

$proxy_source

  • Signification : L'adresse du serveur d'origine vers lequel la requête actuelle est réellement envoyée pour la récupération auprès de l'origine.

  • Exemples de valeurs : origin.example.com ou 192.0.2.1.

En-têtes de réponse de l'origine

$sent_http_<response-header-name>

  • Signification : La valeur d'un en-tête de réponse HTTP spécifique dans la réponse de l'origine. Remplacez <response-header-name> par le nom réel de l'en-tête de réponse.

  • Exemple de valeur : $sent_http_content_type représente la valeur de l'en-tête de réponse Content-Type du serveur d'origine, tel que text/html.

  • Note : Les noms de variables d'en-tête de réponse doivent respecter les conventions de nommage des variables d'en-tête.