Les fonctionnalités basées sur des règles se distinguent par trois caractéristiques : la priorité des paramètres de règle par rapport aux paramètres globaux, la réentrance et la granularité des paramètres de règle. Cette rubrique explique chaque caractéristique et précise celles qui s'appliquent à chaque fonctionnalité basée sur des règles.
Priorité des paramètres de règle et des paramètres globaux
-
Les configurations de règle sont prioritaires sur les paramètres globaux : pour une même fonctionnalité, les paramètres de règle remplacent les paramètres globaux. Appliquez les configurations générales au niveau global et utilisez les règles pour personnaliser le comportement pour des requêtes spécifiques.
Par exemple, si vous définissez le TTL Edge sur 12 heures dans Global Configuration – Edge Cache TTL et que vous définissez le TTL pour les ressources
/contentsur 30 jours dans Rules – Configure Edge Cache TTL, le nœud Edge met en cache les ressources/contentpendant 30 jours. Les ressources ne figurant pas sous/contentutilisent le TTL global de 12 heures. -
Les règles situées plus haut dans la liste ont une priorité plus élevée : pour un même type de règle, ESA exécute les règles de haut en bas. Si une requête correspond à plusieurs règles, faites glisser le bouton
pour réorganiser les règles par ordre de priorité.RemarqueLes fonctionnalités disponibles et les quotas de règles varient selon le plan. Rule and plan quotas.
Par exemple, supposons que vous disposiez de deux règles de mise en cache :
Règle 1 : Les ressources situées sous le chemin
/contentexpirent après 30 jours.Règle 2 : Les fichiers avec le suffixe
.jpgsont mis en cache pendant 60 jours.-
Lorsque la règle 1 est placée au-dessus de la règle 2, les TTL du cache du nœud Edge sont les suivants :
URL d'exemple
Sous le chemin /content
Suffixe .jpg
Délai d'expiration du cache
https://example.com/content/static/pic.jpg
30 jours
https://example.com/content/static/book.txt
30 jours
https://example.com/static/pic.jpg
60 jours
https://example.com/static/res/book.text
Ne pas mettre en cache
-
Lorsque la règle 2 est placée au-dessus de la règle 1, les TTL du cache du nœud Edge sont les suivants :
URI d'exemple
Sous le chemin /content
Suffixe .jpg
Délai d'expiration du cache
https://example.com/content/static/pic.jpg
60 jours
https://example.com/content/static/book.txt
30 jours
https://example.com/static/pic.jpg
60 jours
https://example.com/static/res/book.text
Ne pas mettre en cache
-
Réentrance des fonctionnalités basées sur des règles
La réentrance d'un module de fonctionnalité détermine si ce module peut être appelé plusieurs fois lors du traitement d'une seule requête. Les appels à un module de fonctionnalité réentrant n'interfèrent pas entre eux et le résultat de chaque appel prend effet.
Fonctionnalités réentrantes
Lors du traitement d'une requête, une fonctionnalité réentrante peut être appelée plusieurs fois. Les appels n'interfèrent pas entre eux et le résultat de chaque appel prend effet. Par exemple, la fonctionnalité Modifier les en-têtes de requête sortants est réentrante. Si une requête client correspond à plusieurs conditions de règle, le paramètre de règle de chaque condition correspondante est exécuté.
Exemple 1 : Modifier les en-têtes de requête sortants
Si une requête utilisateur correspond à la fois à la condition B et à la condition C, le paramètre de règle 2 et le paramètre de règle 3 sont tous deux exécutés. Les paramètres globaux sont également exécutés, mais ils n'ont aucun effet car aucune action n'y est configurée. Par conséquent, les deux en-têtes de requête suivants sont ajoutés à la requête utilisateur :
animal: catfruit: apple
|
Numéro de séquence |
Paramètre de règle |
Condition de règle |
Paramètre de fonctionnalité |
Exécuté |
|
1 |
Paramètre de règle 1 |
Condition A (non correspondante) |
Ajouter un en-tête de requête dont le nom est |
Non |
|
2 |
Paramètre de règle 2 |
Condition B |
Ajouter un en-tête de requête dont le nom est animal et dont la valeur est cat. |
Oui |
|
3 |
Paramètre de règle 3 |
Condition C |
Ajouter un en-tête de requête dont le nom est fruit et dont la valeur est apple. |
Oui |
|
Paramètres globaux |
Aucun |
Aucun |
Oui |
Fonctionnalités non réentrantes
Lors du traitement d'une requête, une fonctionnalité non réentrante ne peut être appelée qu'une seule fois et le module de fonctionnalité correspondant est quitté une fois l'appel terminé. Si une requête client correspond à plusieurs conditions de règle, seul le premier paramètre de règle correspondant est exécuté.
Exemple 2 : Réécrire l'URL
Si une requête utilisateur correspond à la fois à la condition B et à la condition C, seul le paramètre de règle 2 est exécuté. Le paramètre de règle 2 ayant un numéro de séquence plus petit, il correspond d'abord à la condition B. Par conséquent, le chemin de l'URL de la requête utilisateur est réécrit vers /animal :
Requête d'origine :
http://example.com/testRequête réécrite :
http://example.com/animal
|
Numéro de séquence |
Paramètre de règle |
Condition de règle |
Paramètre de fonctionnalité |
Exécuté |
|
1 |
Paramètre de règle 1 |
Condition A (non correspondante) |
Réécrire le chemin de l'URL de la requête utilisateur vers |
Non |
|
2 |
Paramètre de règle 2 |
Condition B |
Réécrire le chemin de l'URL de la requête utilisateur vers /animal. |
Oui |
|
3 |
Paramètre de règle 3 |
Condition C |
Réécrire le chemin de l'URL de la requête utilisateur vers |
Non |
|
Paramètres globaux |
Aucun |
Aucun |
Non |
Granularité des paramètres de règle
La granularité des paramètres de règle comprend la dimension de la fonctionnalité et la dimension de la sous-fonctionnalité. Ces deux dimensions diffèrent par le comportement d'un module de sous-fonctionnalité lorsque ses paramètres sont laissés vides.
Dimension de la fonctionnalité
Au niveau de la dimension de la fonctionnalité, un paramètre de sous-fonctionnalité vide n'est résolu par aucune autre règle : lorsqu'une requête utilisateur correspond à une condition de règle, un module de sous-fonctionnalité dont les paramètres sont vides est exécuté comme si aucun paramètre n'avait été ajouté. La règle s'applique à l'ensemble du module de fonctionnalité et les paramètres prennent effet pour l'ensemble du module de fonctionnalité.
Exemple 3 : Règle SSL/TLS (une fonctionnalité non réentrante dont les paramètres de règle prennent effet au niveau de la dimension de la fonctionnalité)
Supposons qu'une requête utilisateur corresponde à la fois à la condition B et à la condition C. Le paramètre de règle 2 ayant un numéro de séquence plus petit, il correspond d'abord à la condition B et seul le paramètre de règle 2 est exécuté. Les paramètres affichés sous la forme - dans le paramètre de règle 2, tels que la suite de chiffrement TLS, prennent effet sur la base des paramètres par défaut.
|
Numéro de séquence |
Paramètre de règle |
Condition de règle |
Chiffrement SSL/TLS |
Paramètres de la suite de chiffrement TLS et de la version du protocole |
OCSP Stapling |
HTTP/2 |
HTTP/3 (QUIC) |
Exécuté |
|
1 |
Paramètre de règle 1 |
Condition A (non correspondante) |
Activé |
- |
Désactivé |
Désactivé |
Désactivé |
Non |
|
2 |
Paramètre de règle 2 |
Condition B |
Activé |
- |
Désactivé |
Désactivé |
Désactivé |
Oui |
|
3 |
Paramètre de règle 3 |
Condition C |
Activé |
- |
Activé |
Activé |
Activé |
Non |
|
Paramètres globaux |
Aucun |
Désactivé |
- |
Désactivé |
Activé |
Activé |
Non |
Dimension de la sous-fonctionnalité
Au niveau de la dimension de la sous-fonctionnalité, un paramètre de sous-fonctionnalité vide est résolu par les règles suivantes : lorsqu'une requête utilisateur correspond à une condition de règle, un module de sous-fonctionnalité dont les paramètres sont vides continue de correspondre aux conditions de règle suivantes jusqu'à ce qu'il corresponde à une condition de règle dont les paramètres de sous-fonctionnalité ne sont pas vides. La règle s'applique à un module de sous-fonctionnalité et les paramètres prennent effet pour ce module de sous-fonctionnalité.
Exemple 4 : Règle de mise en cache (une fonctionnalité non réentrante dont les paramètres de règle prennent effet au niveau de la dimension de la sous-fonctionnalité)
L'exemple suivant présente les paramètres de règle de mise en cache et étend la liste des règles à cinq paramètres de règle, avec la condition A à la condition E. Supposons qu'une requête utilisateur corresponde à la condition B, à la condition C et à la condition D. Les conditions de règle sont mises en correspondance par ordre croissant de numéro de séquence et les éléments de configuration qui ne sont pas définis sont exécutés sur la base des paramètres globaux par défaut. Chaque sous-fonctionnalité occupe une colonne distincte dans le tableau suivant et prend sa valeur indépendamment, comme indiqué dans la ligne Paramètres effectifs finaux.
|
Numéro de séquence |
Paramètre de règle |
Condition de règle |
Éligibilité au cache |
Durée de vie (TTL) du cache du navigateur |
Durée de vie (TTL) du cache Edge |
CacheKey personnalisé |
Mise en cache du port |
Mettre en cache les réponses expirées |
Cache Reserve |
|
1 |
Paramètre de règle 1 |
Condition A (non correspondante) |
Éligible au cache |
- |
Respecter la politique de cache du serveur d'origine (le cas échéant). Sinon, ne pas mettre en cache. |
- |
- |
Désactivé |
- |
|
2 |
Paramètre de règle 2 |
Condition B |
Éligible au cache |
- |
Respecter la politique de cache du serveur d'origine (le cas échéant). Sinon, ne pas mettre en cache. |
- |
- |
Désactivé |
- |
|
3 |
Paramètre de règle 3 |
Condition C |
Ignorer le cache |
Ne pas mettre en cache |
- |
- |
- |
- |
- |
|
4 |
Paramètre de règle 4 |
Condition D |
Éligible au cache |
- |
Ignorer la politique de cache du serveur d'origine et utiliser un TTL de cache personnalisé de 1 heure. |
Ignorer les chaînes de requête |
- |
Désactivé |
- |
|
5 |
Paramètre de règle 5 |
Condition E |
Éligible au cache |
- |
- |
- |
- |
Désactivé |
- |
|
Paramètres globaux |
Aucun |
- |
- |
- |
- |
Désactivé par défaut |
- |
Désactivé par défaut |
|
|
Paramètres effectifs finaux |
Éligible au cache |
Ne pas mettre en cache |
Respecter la politique de cache du serveur d'origine (le cas échéant). Sinon, ne pas mettre en cache. |
Ignorer les chaînes de requête |
Désactivé |
Désactivé |
Désactivé |
Caractéristiques des différentes fonctionnalités
Le tableau suivant répertorie la réentrance, la granularité et la priorité des paramètres de règle de chaque fonctionnalité basée sur des règles, regroupées par catégorie de fonctionnalité.
|
Catégorie de fonctionnalité |
Fonctionnalité basée sur des règles |
Réentrance |
Granularité des paramètres de règle |
Priorité des paramètres de règle |
|
SSL/TLS |
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
|
|
Non réentrant |
Sous-fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
||
|
Règles de transformation |
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
|
|
Réentrant |
Sous-fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
||
|
Réentrant |
Sous-fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
||
|
Redirection |
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
|
|
Caching |
Non réentrant |
Sous-fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
|
|
Optimisation du contenu |
Non réentrant |
Sous-fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
|
|
Non réentrant |
Sous-fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
||
|
Non réentrant |
Sous-fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
||
|
Optimisation réseau |
Non réentrant |
Sous-fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
|
|
Retour à l'origine |
Non réentrant |
Sous-fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
|
|
Gestion de la configuration |
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
|
|
Trafic |
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
|
|
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. Le résultat dépend également de la définition de l'action End : si l'action End est définie, la mise en correspondance s'arrête après l'exécution de la première règle correspondante et aucune autre mise en correspondance n'est effectuée ; si l'action End n'est pas définie et que plusieurs conditions de règle correspondent, le paramètre de fonctionnalité de la dernière règle correspondante prend effet. |
||
|
Protection de sécurité |
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
|
|
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
||
|
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
||
|
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
||
|
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
||
|
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |
||
|
Non réentrant |
Fonctionnalité |
Basé sur les numéros de séquence dans la liste des règles. Un numéro de séquence plus petit indique une priorité plus élevée. |