Les clés de cache personnalisées permettent de générer des clés de cache à partir de différentes parties d'une requête HTTP, telles que l'URI, les paramètres de requête, les en-têtes HTTP ou des variables personnalisées. En associant des requêtes similaires pour un même fichier à une clé de cache unique, vous améliorez le taux de succès du cache, réduisez les récupérations à l'origine et diminuez les temps de réponse ainsi que la consommation de bande passante.
Remarques d'utilisation
Clé de cache personnalisée et Ignorer les paramètres
La fonctionnalité Parameter Actions d'une clé de cache personnalisée et la fonctionnalité Ignorer les paramètres contrôlent toutes deux l'inclusion des paramètres de requête URL dans la génération de la clé de cache. L'activation simultanée de ces deux fonctionnalités peut provoquer des conflits dans les règles de génération des clés de cache, entraînant une baisse du taux de succès du cache ou un contenu mis en cache anormal.
Si vous utilisez des opérations sur les paramètres pour les clés de cache personnalisées, désactivez la fonctionnalité Ignorer les paramètres afin d'éviter les conflits de règles. Les opérations sur les paramètres intègrent les capacités de la fonctionnalité Ignorer les paramètres (via les opérations Delete ou Reserve) et offrent un contrôle plus flexible des paramètres.
Si vous utilisez la fonctionnalité Ignorer les paramètres, consultez le tableau suivant pour déterminer s'il est pertinent de passer aux opérations sur les paramètres des clés de cache personnalisées.
Scénario | Ignorer les paramètres | Clé de cache personnalisée |
Ignorer tous les paramètres de requête dans la clé de cache | Définissez Ignorer les paramètres sur Oui et laissez Conserver les paramètres spécifiés vide. | Ajoutez une règle de traitement pour les paramètres de requête :
|
Conserver uniquement le paramètre de requête | Définissez Ignorer les paramètres sur Oui et configurez Conserver les paramètres spécifiés avec | Ajoutez une règle de traitement pour les paramètres de requête :
|
Supprimer uniquement le paramètre de requête | Définissez Supprimer les paramètres spécifiés sur | Ajoutez une règle de traitement pour les paramètres de requête :
|
Pour modifier les valeurs des paramètres ou ajouter des paramètres supplémentaires au-delà de leur simple conservation ou exclusion, privilégiez les opérations sur les paramètres des clés de cache personnalisées plutôt que la fonctionnalité Ignorer les paramètres.
Ordre d'exécution du moteur de règles
Lorsque cette fonctionnalité fait référence à une condition de règle du moteur de règles, l'ordre d'exécution dépend de la priorité de cette condition dans le moteur, et non de la priorité des règles configurées au sein de cette fonctionnalité.
Actualisation du cache
Après la configuration d'une clé de cache personnalisée, les PoPs DCDN indexent les fichiers mis en cache selon la clé de cache traitée. Lors d'une actualisation du cache par URL, soumettez l'URL correspondant à la clé de cache sur les PoPs DCDN. Dans le cas contraire, l'opération d'actualisation ne pourra pas localiser le contenu cible.
Par exemple, si vous configurez une règle de remplacement d'URI pour remplacer /a/b/image.jpg par /c/image.jpg, la clé de cache du fichier sur les PoPs DCDN devient http://aliyundoc.com/c/image.jpg. Pour actualiser le cache de ce fichier, vous devez soumettre http://aliyundoc.com/c/image.jpg (la clé de cache traitée), et non l'URL de requête client d'origine.
Si vous configurez des opérations sur les paramètres, telles que la suppression ou la modification, utilisez l'URL traitée comme adresse d'actualisation. Notez le format final de la clé de cache après avoir configuré les règles de clé de cache personnalisées afin de simplifier les futures opérations d'actualisation du cache.
Réécriture d'URL d'origine
La fonctionnalité de clé de cache personnalisée affecte uniquement la génération des clés de cache sur les PoPs DCDN. Elle ne modifie pas l'URL réelle utilisée pour les récupérations à l'origine. Lorsqu'un PoP DCDN effectue une récupération à l'origine, il utilise l'URL de requête client d'origine. Pour réécrire les paramètres ou le chemin de la requête envoyée à l'origine, utilisez la fonctionnalité de réécriture d'URL d'origine.
Par exemple, un client demande http://example.com/image.jpg?key1=1&key2=2. Vous configurez une clé de cache personnalisée pour supprimer le paramètre key1. La clé de cache devient alors http://example.com/image.jpg?key2=2. Cependant, lors de la récupération à l'origine, le PoP DCDN demande toujours l'URL d'origine : http://example.com/image.jpg?key1=1&key2=2.
Cas d'utilisation
La fonctionnalité de clé de cache personnalisée ne modifie pas l'URL utilisée pour les récupérations à l'origine. Elle change uniquement l'identifiant de cache de la requête. La requête envoyée à l'origine reste identique à la requête client d'origine.
Une clé de cache est l'identifiant unique d'un fichier mis en cache sur un PoP DCDN. Par défaut, la clé de cache correspond à l'URL complète de la requête, y compris les paramètres de requête.
Scénario 1
Lorsque des requêtes client pour un même fichier contiennent des paramètres URL différents, les PoPs DCDN les traitent comme des requêtes pour des fichiers distincts. Cela entraîne la mise en cache de plusieurs copies du même fichier et augmente les récupérations à l'origine.
Utilisez des règles de clé de cache personnalisée pour unifier les clés de cache des requêtes similaires et réduire ainsi le taux de récupération à l'origine.
Scénario 2
DCDN traite les requêtes ayant la même URL comme des requêtes pour le même fichier. Toutefois, l'en-tête HTTP de la requête contient un champ client permettant de différencier les systèmes clients, l'objectif étant de récupérer des fichiers différents.
Dans ce cas, utilisez une Cachekey personnalisée pour ajouter la valeur du champ client à la Cachekey. Les deux requêtes sont alors identifiées comme deux Cachekeys distinctes.
Procédure
Connectez-vous à la console DCDN.
Dans le volet de navigation de gauche, cliquez sur Domain Names.
Sur la page Domain Names, recherchez le nom de domaine cible et cliquez sur Configure.
Dans l'arborescence de navigation de gauche du nom de domaine, cliquez sur Caching.
-
Dans l'onglet Custom Cache Key, configurez la clé de cache.
RemarqueLa clé de cache finale résulte de la combinaison des quatre composants suivants : URI, Parameter Actions, en-têtes HTTP et variables personnalisées.

Paramètre
Description
Rule Condition
Une condition de règle détermine si une configuration s'applique à une requête en évaluant les paramètres de celle-ci.
ImportantLorsqu'une fonctionnalité fait référence à des conditions de règle configurées dans le moteur de règles, l'ordre d'exécution suit la priorité des conditions de règle associées, et non l'ordre des configurations de la fonctionnalité.
Do not use conditions : Désactive les règles conditionnelles.
Vous pouvez ajouter ou modifier des règles conditionnelles dans le Moteur de règles.
URIs
Si l'URI d'une requête client correspond à l'Source URI configurée, le système remplace l'Source URI par l'Final URI configurée lors de la génération de la partie URI de la clé de cache.
Vous pouvez configurer plusieurs règles de remplacement d'URI. Si plusieurs règles existent, elles sont évaluées séquentiellement de haut en bas. Dès qu'une Source URI correspond, le système utilise l'Final URI correspondante pour le remplacement et cesse d'évaluer les règles suivantes.
Source URI : URI commençant par une barre oblique (/), sans inclure le préfixe http:// ni le nom de domaine. Prend en charge les expressions régulières
PCRE.Final URI : URI commençant par une barre oblique (/) et ne contenant ni le préfixe http:// ni un nom de domaine.
Parameter Actions
Ces opérations s'appliquent aux paramètres de requête de l'URL de requête d'origine. Vous pouvez effectuer des opérations Add, Delete, Modify ou Reserve sur les paramètres. Les paramètres résultants constituent la partie chaîne de requête de la clé de cache. Vous pouvez configurer plusieurs opérations ; elles sont exécutées séquentiellement de haut en bas.
Add : Ajoute un nouveau paramètre de requête à la clé de cache. Par exemple, si l'URL d'origine est
http://image.example.com/cat.jpget que vous ajoutez le paramètre de requêtetype=jpg, la clé de cache devienthttp://image.example.com/cat.jpg?type=jpg.Delete : Supprime un paramètre de requête spécifié de l'URL de requête d'origine lors de la génération de la clé de cache. Par exemple, si l'URL d'origine est
http://image.example.com/cat.jpg?type=jpget que vous supprimez le paramètretype, la clé de cache devienthttp://image.example.com/cat.jpg.Modify : Modifie un paramètre de requête spécifié dans l'URL de requête d'origine lors de la génération de la clé de cache. Par exemple, si l'URL d'origine est
http://image.example.com/cat.jpg?type=jpget que vous modifiez le paramètre entype=png, la clé de cache devienthttp://image.example.com/cat.jpg?type=png.Reserve : Conserve uniquement les paramètres de requête spécifiés de l'URL de requête d'origine lors de la génération de la clé de cache. Par exemple, si l'URL d'origine est
http://image.example.com/cat.jpg?type=jpg&path=imageet que vous conservez le paramètretype, la clé de cache devienthttp://image.example.com/cat.jpg?type=jpg.
HTTP Headers
Ajoute la valeur d'un en-tête HTTP spécifié de la requête client d'origine à la clé de cache. Vous pouvez configurer plusieurs noms d'en-têtes HTTP, séparés par des espaces. La valeur de chaque en-tête HTTP spécifié est ajoutée séquentiellement à la clé de cache.
Par exemple, si l'URL d'origine est
http://image.example.com/cat.jpg, que la requête client inclut un en-tête HTTPpath: imageet que vous configurez le paramètre HTTP Headers pour inclure l'en-têtepath, la clé de cache devienthttp://image.example.com/cat.jpgimage.Custom Variables
Ajoute des informations de variables personnalisées à la clé de cache générée pour améliorer la flexibilité de vos configurations de cache. Une variable personnalisée comprend les paramètres suivants :
Nom de la variable : Un nom personnalisé pour la variable.
Source de la variable : Un champ spécifique de la requête client utilisé comme source de la variable.
Query String Parameter : Une chaîne de requête dans l'URL de la requête.
Request Header : Un en-tête de la requête client.
Path : Le chemin de la ressource dans l'URL de la requête.
Scheme : Le protocole utilisé dans l'URL de la requête. Prend en charge HTTP et HTTPS.
Nom du champ source : Applicable aux trois scénarios suivants :
Le nom d'un paramètre de chaîne de requête spécifié.
Le nom d'un en-tête de requête spécifié.
Règle de correspondance : Une expression régulière utilisée pour faire correspondre des caractères spécifiques dans la valeur du champ.
Expression de variable : Utilisée pour générer la valeur finale de la variable. Prend en charge les chaînes fixes et les expressions telles que
$1pour référencer le contenu du premier groupe de capture.
Cliquez sur OK pour terminer la configuration.
Exemples de configuration
URIs
Les requêtes pour http://aliyundoc.com/a/b/image.jpg et http://aliyundoc.com/a/b/c/image.jpg sont traitées comme des requêtes pour le même fichier. La clé de cache pour ce fichier est http://aliyundoc.com/c/image.jpg.
Parameter Actions
Pour une requête client vers http://aliyundoc.com/a/b/image.jpg?delete_par=1&modify_par=1 , les règles ajoutent add_par=1, suppriment delete_par et modifient la valeur de modify_par en 2. La clé de cache finale est http://aliyundoc.com/a/b/image.jpg?modify_par=2&add_par=1.
Pour les opérations sur les paramètres, si plusieurs opérations sont appliquées à la même variable, la priorité des opérations est la suivante : Add > Delete > Keep > Modify.

HTTP Headers
Les valeurs des en-têtes HTTP User-Agent et Accept-Language de la requête client sont ajoutées à la clé de cache. Pour une requête vers http://aliyundoc.com/a/b/image.jpg avec User-Agent: Mozilla/5.0 (Linux; X11) et Accept-Language: en, la clé de cache résultante est http://aliyundoc.com/a/b/image.jpgMozilla/5.0(Linux;X11)en.
Custom Variables
Exemple 1
Le nom de la variable est language, la source est Request Header, le nom du champ source est Accept-Language, le modèle de correspondance est ([%w]+),([%w]+) et l'expression de variable est $1aa.
Si un client envoie une requête pour http://aliyundoc.com/a/b/image.jpg avec l'en-tête de requête HTTP Accept-Language=en,ch , le modèle de correspondance identifie en et l'assigne à $1 dans l'expression de variable. L'expression de variable ajoute ensuite aa pour créer la valeur enaa. Cette valeur est aliasée sous language et ajoutée à l'URL pour former la clé de cache : http://aliyundoc.com/a/b/image.jpgenaa.
Dans une expression de variable, $n représente le contenu capturé par la n ième paire de parenthèses dans le modèle de correspondance. Par exemple, dans l'Exemple 1, si l'entrée est Accept-Language=en,ch et que le modèle de correspondance est ([%w]+),([%w]+), alors $1=en et $2=ch.
Exemple 2
Le nom de la variable est expired, la source est Request Cookie, le nom du champ source est a, le modèle de correspondance est [%w]+:(.*) et l'expression de variable est $1.
Si un client demande http://aliyundoc.com/a/b/image.jpg avec le cookie Cookie a=expired_time:12635187, le modèle de correspondance identifie 12635187. Cette valeur est assignée à $1 dans l'expression de variable avec l'alias expired, et est ajoutée à l'URL pour former la Cachekey finale : http://aliyundoc.com/a/b/image.jpg12635187.
Exemple 3
Configurez à la fois des règles d'URI et des variables personnalisées.
-
URI :
Réécrivez toutes les URI de requête correspondant à
/abc/.*/abcen/abc.
-
Variable personnalisée :
Le nom de la variable est
testname, la source estPath, le modèle de correspondance est/abc/xyz/(.*)et l'expression de variable est$1.
Pour une requête client avec l'URL
http://aliyundoc.com/abc/xyz/abc/image.jpg, la clé de cache est normalisée enhttp://aliyundoc.com/abc/image.jpgselon la configuration URI. Ensuite, selon la configuration de variable personnalisée, cette URL correspond à/abc/xyz/(.*), moment où$1reçoit la valeurabcet est ajoutée à la clé de cache pour former la clé de cache finale :http://aliyundoc.com/abc/image.jpgabc. Cela permet aux deux règles de fonctionner ensemble pour mettre en œuvre une logique de mise en cache plus complexe.Si une variable personnalisée pour la Cachekey ne correspond pas, l'expression de variable
$1n'est pas concaténée à la Cachekey.