Tous les produits
Search
Centre de documentation

Edge Security Acceleration:Moteur de règles

Dernière mise à jour :Aug 12, 2026

Le moteur de règles offre une interface graphique simplifiant la configuration des règles. Configurez des règles pour identifier les requêtes utilisateur selon leurs paramètres et déterminer si une configuration s'applique. Cette approche assure une gestion plus flexible et précise des configurations et politiques définies dans Dynamic Content Delivery Network (DCDN).

Informations générales

La console CDNDCDN propose de nombreuses fonctionnalités de base, telles que la configuration du délai d'expiration (TTL) et la réécriture des paramètres de retour à l'origine.

Certaines exigences nécessitent toutefois des paramètres avancés. Vous souhaitez par exemple router les requêtes contenant le chemin /example vers un serveur d'origine spécifique. Dans ce cas, combinez les fonctionnalités de base avec le moteur de règles pour personnaliser vos configurations. De plus, CDNDCDN fournit EdgeRoutine, qui offre une grande flexibilité.

Capacité de configuration

Fonctionnalités de base

Fonctionnalités de base + moteur de règles

Fonctions Edge

Mise en œuvre

Configurations générales

Configurations flexibles

Configurations hautement flexibles

Scénarios

Besoins courants

Besoins personnalisés avancés

Besoins entièrement personnalisés

Niveau de difficulté (Compétence technique de l'utilisateur)

Faible

Moyen

Élevé

Flexibilité de configuration

Faible

Moyenne

Élevée

Limites

  • Vous pouvez créer jusqu'à 50 conditions de règle par nom de domaine.

  • Chaque condition de règle peut contenir jusqu'à 20 sous-règles.

  • Les opérateurs de correspondance ou de non-correspondance d'expression régulière ne sont pas disponibles lors de la configuration des conditions de règle via la console ou OpenAPI. Vous pouvez toutefois consulter les configurations existantes utilisant ces opérateurs. Pour les utiliser, recourez à ESA.

  • Une condition de règle peut être référencée cinq fois au maximum parmi toutes les fonctionnalités d'un même nom de domaine.

  • L'imbrication des conditions de règle est possible sur trois niveaux de profondeur, chaque niveau pouvant avoir ses propres relations logiques indépendantes.

  • Si une fonctionnalité, telle que la définition du délai d'expiration du cache ou la modification des en-têtes de requête sortante, référence une condition de règle, la priorité de cette condition détermine l'ordre d'exécution, et non l'ordre de configuration de la fonctionnalité.

  • Les limites mentionnées ci-dessus (50 conditions de règle, 20 sous-règles, 3 niveaux d'imbrication et 5 références) sont strictes et ne peuvent pas être augmentées sur demande.

  • Chaque condition accepte un maximum de 32 valeurs de correspondance pour les types tels que l'IP client, l'URI, l'extension de fichier, le nom de fichier et le User-Agent. Si vous disposez d'une liste d'autorisation d'adresses IP clientes volumineuse, regroupez plusieurs adresses IP en blocs CIDR (par exemple, 120.209.XXX.X/24) afin d'économiser votre quota de valeurs de correspondance.

  • Vous pouvez configurer jusqu'à 32 valeurs de correspondance User-Agent. Les valeurs dépassant cette limite sont ignorées. Pour faire correspondre un grand nombre de User-Agents, utilisez un caractère générique (*) pour regrouper des valeurs similaires (par exemple, *Chrome* correspond à toutes les versions du navigateur Chrome) ou utilisez EdgeScript pour une logique de correspondance plus flexible.

Syntaxe des conditions de règle

Une condition de règle combine une ou plusieurs expressions conditionnelles à l'aide d'opérateurs logiques. Les sections suivantes décrivent la syntaxe applicable.

Opérateurs logiques

Les opérateurs logiques évaluent les conditions situées au même niveau, y compris les ensembles de conditions imbriquées. Les opérateurs pris en charge sont and et or.

  • and : opérateur ET logique. La correspondance réussit uniquement si toutes les conditions sont vraies.

  • or : opérateur OU logique. La correspondance réussit si au moins une condition est vraie. Configurez par exemple plusieurs conditions de règle pour un même en-tête de réponse afin d'ajouter cet en-tête dans différentes circonstances. Exemple : si l'URI contient /path-a or si l'URI contient /path-b, le système ajoute l'en-tête de réponse.

Paramètres d'une expression conditionnelle

Une expression conditionnelle, unité la plus granulaire d'une règle, comprend les paramètres suivants :

Paramètre

Fonctions pour la configuration des noms de domaine paramètre de fonction

Description

Obligatoire

Correspondance conditionnelle

match

Définit l'expression de correspondance conditionnelle.

Oui

Opérateur logique

logic

Spécifie l'opérateur logique pour l'expression de correspondance conditionnelle. Les valeurs valides sont and et or.

Oui

Critères

criteria

Désigne le tableau d'expressions conditionnelles à évaluer.

Oui

Type de correspondance

MatchType

Indique le type d'information à faire correspondre dans une requête client.

Oui

Objet de correspondance

MatchObject

Affine le type de correspondance. Par exemple, une adresse IP cliente peut être spécifiée comme IP de connexion POP ou IP XFF.

Non

Opérateur de correspondance

MatchOperator

Détermine la comparaison à effectuer.

Oui

Valeur de correspondance

MatchValue

La valeur à comparer aux données issues de la requête client.

Oui

Négation de condition

negate

Indique s'il faut inverser le résultat de l'expression conditionnelle. Les valeurs valides sont true et false.

Oui

Sensibilité à la casse

caseSensitive

Précise si la valeur de correspondance respecte la casse.

Non

Nom de la condition de règle

name

Définit le nom de la condition de règle.

Oui

Statut

status

Détermine le statut de la condition de règle.

Oui

Configuration des expressions conditionnelles

Type de correspondance

Fonctions pour la configuration des noms de domaine paramètre de fonction

Description

Objet de correspondance

Opérateur de correspondance

Valeur de correspondance

Sensibilité à la casse

Variable Nginx

Protocole

scheme

Protocole utilisé par la requête client, tel que HTTP ou HTTPS.

Non applicable

  • égal à

  • différent de

  • http

  • https

Non applicable

$scheme

Méthode de requête

method

Méthode utilisée par la requête client, telle que GET ou PUT.

Non applicable

  • égal à

  • différent de

  • get

  • put

  • post

  • delete

  • head

Non applicable

$request_method

URI (chemin)

uri

Chemin présent dans l'URL de la requête client, hors paramètres de requête. Exemple : /favicon.ico.

Non applicable

  • contient l'un des éléments

  • ne contient aucun des éléments

Les caractères génériques ? et * sont pris en charge. Saisissez par exemple /*/my_path/*. Plusieurs valeurs sont acceptées.

  • Sensible à la casse

  • Insensible à la casse

$raw_uri ou $uri

Nom de fichier

basename

Nom du fichier demandé par le client. Exemple : name1.

Non applicable

  • contient l'un des éléments

  • ne contient aucun des éléments

Les caractères génériques ? et * sont pris en charge. Vous pouvez saisir plusieurs valeurs.

  • Sensible à la casse

  • Insensible à la casse

-

Extension de fichier

extension

Extension du fichier demandé par le client. Le système identifie l'extension comme la sous-chaîne allant du dernier point (.) à la fin du nom de fichier. Exemple : .mp4.

Non applicable

  • contient l'un des éléments

  • ne contient aucun des éléments

Les caractères génériques ? et * sont pris en charge. Vous pouvez saisir plusieurs valeurs.

  • Sensible à la casse

  • Insensible à la casse

-

Nom d'hôte

hostname

Nom d'hôte issu de la requête client. Ordre de correspondance : hôte dans l'URL de la requête > hôte dans l'en-tête de requête Host.

Non applicable

  • contient l'un des éléments

  • ne contient aucun des éléments

Hôte provenant de la requête client. Vous pouvez saisir plusieurs valeurs.

  • Sensible à la casse

  • Insensible à la casse

$host ou $http_host

Adresse IP cliente

clientip

Adresse IP du client. IPv4 (par exemple, 1.1.X.X), IPv6 (par exemple, 240e:95c:3004:2:3:0:0:XXX) et blocs CIDR (par exemple, 20.209.XXX.XXX/31) sont pris en charge.

  • IP de connexion POP

  • IP XFF

Remarque

Pour plus d'informations sur l'IP de connexion POP et l'IP XFF, consultez Mode de vérification de l'adresse IP.

  • contient l'un des éléments

  • ne contient aucun des éléments

Les adresses IPv6, telles que 240e:XXX:3004:2:3:0:0:3f7, et les blocs CIDR, tels que 120 209.XXX.XXX/31, sont pris en charge. Vous pouvez saisir plusieurs valeurs.

Non applicable

$remote_addr

Version IP cliente

clientipVer

Version IP de l'adresse cliente : IPv4 ou IPv6.

  • IP de connexion POP

  • IP XFF

Remarque

Pour plus d'informations sur l'IP de connexion POP et l'IP XFF, consultez Mode de vérification de l'adresse IP.

  • égal à

  • différent de

  • v4

  • v6

Non applicable

-

Fournisseur d'accès Internet (FAI)

geolocation

FAI auquel appartient l'adresse IP cliente.

  • IP de connexion POP

  • IP XFF

Remarque

Pour plus d'informations sur l'IP de connexion POP et l'IP XFF, consultez Mode de vérification de l'adresse IP.

  • contient l'un des éléments

  • ne contient aucun des éléments

Sélectionnez un FAI dans la liste déroulante ou saisissez des caractères pour filtrer les options. La recherche floue par ID ou par nom est prise en charge. Vous pouvez saisir plusieurs valeurs.

Non applicable

$ip_isp_id

Géolocalisation IP

geolocation

Emplacement géographique de l'adresse IP cliente.

  • IP de connexion POP

  • IP XFF

Remarque

Pour plus d'informations sur l'IP de connexion POP et l'IP XFF, consultez Mode de vérification de l'adresse IP.

  • contient l'un des éléments

  • ne contient aucun des éléments

Sélectionnez un emplacement dans la liste déroulante ou saisissez des caractères pour filtrer les options. La recherche floue par ID ou par nom est prise en charge. Vous pouvez saisir plusieurs valeurs.

Non applicable

$ip_country_id

Paramètre de requête

querystring

Paramètre présent dans l'URL de la requête.

Saisissez le nom du paramètre.

  • existe

  • n'existe pas

  • contient l'un des éléments

  • ne contient aucun des éléments

  • supérieur à

  • supérieur ou égal à

  • inférieur à

  • inférieur ou égal à

Les caractères génériques ? et * sont pris en charge. Vous pouvez saisir plusieurs valeurs.

  • Sensible à la casse

  • Insensible à la casse

$arg_{name}

En-tête de requête

header

En-tête présent dans la requête client.

Saisissez un nom de paramètre ou sélectionnez-en un dans la liste déroulante.

  • existe

  • n'existe pas

  • contient l'un des éléments

  • ne contient aucun des éléments

  • supérieur à

  • supérieur ou égal à

  • inférieur à

  • inférieur ou égal à

Vous pouvez saisir plusieurs valeurs.

  • Sensible à la casse

  • Insensible à la casse

$http_{name}

Cookie

cookie

Cookie présent dans la requête client.

Saisissez le nom du cookie.

  • existe

  • n'existe pas

  • contient l'un des éléments

  • ne contient aucun des éléments

  • supérieur à

  • supérieur ou égal à

  • inférieur à

  • inférieur ou égal à

Les caractères génériques ? et * sont pris en charge. Vous pouvez saisir plusieurs valeurs.

  • Sensible à la casse

  • Insensible à la casse

$cookie_{name}

User-Agent

useragent

En-tête User-Agent de la requête client.

Non applicable

  • contient l'un des éléments

  • ne contient aucun des éléments

Sélectionnez une valeur dans la liste déroulante ou saisissez une valeur User-Agent, telle que *Chrome/25*. Les caractères génériques ? et * sont pris en charge. Vous pouvez saisir plusieurs valeurs. Un maximum de 32 valeurs User-Agent peuvent être configurées. Si cette limite est dépassée, la configuration ne prend pas effet.

  • Sensible à la casse

  • Insensible à la casse

$http_user_agent

Plage Range

range

Correspond à un pourcentage spécifié de requêtes clientes.

Non applicable

  • égal à

  • différent de

Saisissez une valeur en pourcentage.

Non applicable

-

Heure

time

Moment où la requête client se produit. L'heure est exprimée en UTC+8. Exemple : 09:10~14:22.

Non applicable

  • contient l'un des éléments

  • ne contient aucun des éléments

Saisissez une plage horaire, telle que 09:10~14:22, représentant la période de 09:10 à 14:22.

Non applicable

-

Variable Nginx

ngxvar

Utilisez des variables Nginx si les variables précédentes ne répondent pas à vos besoins. Pour obtenir la liste des variables prises en charge, consultez la documentation officielle Nginx.

Sélectionnez une variable dans la liste déroulante ou saisissez un nom de variable. La concaténation est prise en charge, par exemple $region:$isp.

  • existe

  • n'existe pas

  • contient l'un des éléments

  • ne contient aucun des éléments

  • supérieur à

  • supérieur ou égal à

  • inférieur à

  • inférieur ou égal à

Vous pouvez saisir plusieurs valeurs.

Non applicable

${name}

Notes de configuration courantes pour les expressions conditionnelles

  • Point de départ de la correspondance URI (chemin) : Pour la correspondance d'URI, la valeur correspond à la partie du chemin commençant par le premier / après le nom de domaine. Cette valeur n'inclut ni le nom de domaine ni les paramètres de requête. Pour la requête https://example.com/path/file.html?key=value, la valeur à faire correspondre est /path/file.html. La valeur de correspondance doit commencer par /.

  • Format de correspondance des extensions de fichier : Lors de la configuration d'une correspondance d'extension de fichier, la valeur doit inclure un point (.). Par exemple, pour cibler les fichiers .txt, saisissez .txt, et non txt. Sinon, la correspondance risque d'échouer.

  • Exemples d'utilisation des caractères génériques : Les correspondances d'URI et d'extension de fichier prennent en charge les caractères génériques ? (correspond à un seul caractère) et * (correspond à zéro ou plusieurs caractères). Exemples courants :

    • /*.pdf : Correspond à tous les fichiers PDF situés dans le répertoire racine.

    • /api/*/data : Correspond au chemin data dans n'importe quel sous-répertoire sous /api/.

    • .?? : Correspond à toutes les extensions de fichier composées de deux caractères, telles que .js et .ts.

Mode de vérification de l'adresse IP

Le moteur de règles propose deux modes de vérification de l'adresse IP. Le mode sélectionné influence la manière dont les nœuds CDNDCDN identifient l'adresse IP du client :

  • IP de connexion POP : Ce mode fait correspondre l'adresse IP utilisée par un client pour se connecter à un nœud CDNDCDN. Si un serveur proxy est interposé entre le client et le nœud CDNDCDN, l'IP de connexion POP correspond à l'adresse IP du serveur proxy.

  • IP XFF : Ce mode fait correspondre l'adresse IP la plus à gauche dans l'en-tête de requête x-forwarded-for. L'IP XFF représente toujours l'adresse IP réelle du client, qu'un serveur proxy soit utilisé ou non entre le client et le nœud CDNDCDN.

Le choix du mode de vérification dépend du passage ou non de la requête client par un serveur proxy avant d'atteindre un nœud CDNDCDN.

Notez que l'emplacement où une fonctionnalité prend effet sur un nœud CDNDCDN affecte également le mode de vérification de l'adresse IP. Pour les fonctionnalités liées aux paramètres d'origine qui s'appliquent sur les nœuds L2, les nœuds L1 traversés par une requête sont considérés comme des serveurs proxy intermédiaires.

Exemple : Supposons que l'adresse IP réelle du client soit 10.10.10.10 et que l'adresse IP du serveur proxy soit 192.168.0.1.

  • Sans serveur proxy :

    • La valeur de l'en-tête de requête x-forwarded-for est 10.10.10.10.

    • L'adresse IP réelle du client (l'IP la plus à gauche dans l'en-tête x-forwarded-for) = L'adresse IP utilisée pour établir la connexion entre le client et le nœud CDNDCDN = 10.10.10.10.

  • Avec serveur proxy :

    • La valeur de l'en-tête de requête x-forwarded-for est 10.10.10.10,192.168.0.1.

    • L'adresse IP réelle du client (l'adresse IP la plus à gauche dans l'en-tête x-forwarded-for) est 10.10.10.10.

    • IP de connexion du client au nœud CDNDCDN = IP du serveur proxy = 192.168.0.1.

    • L'adresse IP réelle du client (la première adresse IP en partant de la gauche dans l'en-tête x-forwarded-for) ≠ l'adresse IP de connexion du client au nœud CDNDCDN.

Remarque

Certains fournisseurs d'accès Internet (FAI) dans des régions spécifiques peuvent attribuer des adresses IP privées aux utilisateurs finaux. Par conséquent, les nœuds peuvent recevoir l'adresse IP privée d'un utilisateur.

Les adresses IP privées se répartissent en trois plages :

  • Adresse IP privée de classe A : 10.0.0.0 à 10.255.255.255, masque de sous-réseau : 10.0.0.0/8

  • Adresse IP privée de classe B : 172.16.0.0 à 172.31.255.255, masque de sous-réseau : 172.16.0.0/12

  • Adresse IP privée de classe C : 192.168.0.0 à 192.168.255.255, masque de sous-réseau : 192.168.0.0/16

Opérateurs de correspondance (matchOperator)

Opérateur

condition paramètre de fonction

Description

égal à

matchOperator est défini sur equals.

La condition est remplie uniquement lorsque la variable est exactement égale ou différente de la valeur de correspondance spécifiée.

différent de

matchOperator est défini sur equals, et le paramètre negate est défini sur true.

existe

matchOperator est défini sur exists.

La condition est remplie selon que la variable spécifiée existe ou non dans la requête.

n'existe pas

matchOperator est défini sur exists, et le paramètre negate est défini sur true.

contient l'un des éléments

matchOperator est défini sur contains.

La condition est remplie si la variable contient (ou ne contient pas) l'une des valeurs de correspondance spécifiées. Un maximum de 32 valeurs de correspondance est pris en charge.

Deux types de correspondance de contenu sont pris en charge :

  • Correspondance exacte : La variable doit correspondre exactement à la valeur spécifiée. Par exemple, si la valeur est a, la variable doit également être a.

  • Correspondance avec caractère générique : Vous pouvez utiliser * comme caractère générique. Les modèles pris en charge incluent a*, *a et *a*. Ceux-ci correspondent respectivement à abc, bca et bcabc.

ne contient aucun des éléments

matchOperator est défini sur contains, et le paramètre negate est défini sur true.

supérieur à

matchOperator est défini sur gt.

C'est-à-dire >

inférieur à

matchOperator est défini sur lt.

C'est-à-dire <

supérieur ou égal à

matchOperator est défini sur ge.

C'est-à-dire >=

inférieur ou égal à

matchOperator est défini sur le.

C'est-à-dire <=

correspondance d'expression régulière

matchOperator est défini sur regex.

Compare la variable à une expression régulière.

Remarque

Si vous configurez des règles dans la console ou via OpenAPI, vous ne pouvez pas utiliser ces opérateurs d'expression régulière. Cependant, vous pouvez consulter les configurations existantes. Pour utiliser des opérateurs de correspondance liés aux expressions régulières, ouvrez un ticket ou utilisez Edge Security Acceleration (ESA).

non-correspondance d'expression régulière

matchOperator est défini sur regex, et le paramètre negate est défini sur true.

Caractères génériques

Caractère générique

Description

Exemple de correspondance de chemin

?

Correspond à n'importe quel caractère unique.

/img/?.png correspond aux ressources dont le nom de fichier comporte un seul caractère, telles que /img/a.png et /img/b.png.

*

Correspond à zéro ou plusieurs caractères.

/api/* correspond à tous les chemins sous /api/, tels que /api/v1/users et /api/v2/products. /static/*.css correspond à tous les fichiers CSS du répertoire /static/.

Fonctionnalités pouvant référencer des règles

Catégorie de fonctionnalité

Nom de la fonctionnalité

Configuration de récupération d'origine

Spécifier l'hôte d'origine

Modifier les en-têtes de requête entrante

En-têtes de requête HTTP d'origine

En-têtes de réponse HTTP d'origine

Configuration du cache

Créer un TTL pour le cache

Configurer les en-têtes de réponse sortante

Clé de cache personnalisée

Procédure

  1. Connectez-vous à la console DCDN.

  2. Dans le volet de navigation de gauche, cliquez sur Domain Names.

  3. Sur la page Domain Names, localisez le nom de domaine à gérer et cliquez sur Configure dans la colonne Actions.

  4. Dans le volet de navigation de gauche du nom de domaine cible, cliquez sur Rules Engine.

  5. Cliquez sur Create Rule.

  6. Sur la page Create Rule, définissez le Rule Name et le Rule Content.

  7. Cliquez sur Submit pour finaliser la configuration.