Lorsqu'un serveur d'origine renvoie un code d'état autre que 2xx, les points de présence (POP) d'Edge Security Acceleration (ESA) peuvent mettre en cache ce code et répondre directement aux requêtes suivantes pendant la période de validité du cache. Cette approche réduit les requêtes répétées vers l'origine et diminue la charge sur le serveur d'origine.
Scénarios
Par défaut, un POP ESA met en cache une ressource uniquement lorsque le serveur d'origine renvoie un code d'état 2xx. Si le serveur d'origine renvoie un code d'état autre que 2xx, tel que 404 ou 502, vous pouvez configurer une durée de vie (TTL) du cache pour ce code afin que le POP ESA réponde directement sans transférer chaque requête au serveur d'origine.
Scénario typique
Le fichier A a été supprimé du serveur d'origine, mais les clients continuent d'y accéder. Étant donné que le POP ESA n'a pas mis en cache le fichier A, toutes les requêtes concernant ce fichier sont envoyées au serveur d'origine. Ce dernier répond alors par un code d'état 404. Cette situation augmente considérablement la charge sur le serveur d'origine.
Si vous configurez le POP ESA pour qu'il mette en cache le code d'état 404, celui-ci sera mis en cache après la première récupération depuis l'origine. Les requêtes suivantes recevront alors une réponse 404 directement depuis le POP ESA jusqu'à l'expiration du cache, évitant ainsi des récupérations inutiles auprès du serveur d'origine.
Procédure
Dans la console ESA, sélectionnez Gestion des sites. Dans la colonne Website, cliquez sur le site cible.
Dans le volet de navigation de gauche, choisissez .
Cliquez sur Create Rule et saisissez un Rule Name.
Dans la zone If requests match..., définissez les attributs de requête à faire correspondre. Pour plus d'informations sur la configuration des règles, consultez Composition des expressions de règle.
Dans la section Cache Eligibility, spécifiez s'il faut contourner le cache. Pour plus d'informations, consultez Éligibilité au cache.
Dans la zone Edge Status Code Cache TTL, cliquez sur Configure.
-
Dans la section Status Code Cache Rule, cliquez sur Add. Configurez les paramètres suivants, puis cliquez sur OK :
Status Code : le code d'état HTTP à mettre en cache. Prend en charge les codes d'état 4xx (erreur client) et 5xx (erreur côté serveur), tels que 404, 502 et 503.
Expired At : la période pendant laquelle le POP met en cache le code d'état. La valeur peut aller de 1 seconde à 31 536 000 secondes (1 an). Une fois le TTL expiré, le POP récupère à nouveau le code d'état depuis le serveur d'origine.
Exemples de configuration
Scénario 1 : Mettre en cache les erreurs 404 pour les ressources statiques
Besoin métier : les images du dossier d'images du site web peuvent être supprimées, mais la page frontale référence toujours les anciens chemins.
Configuration :
Condition de correspondance : le chemin URL contient
/imagesCode d'état : 404
TTL du cache : 600 secondes (10 minutes)
Résultat : lors de la première requête pour une image inexistante, le POP récupère une réponse 404 depuis l'origine et la met en cache pendant 10 minutes. Pendant cette période, les requêtes suivantes pour la même image reçoivent une réponse 404 directement depuis le POP sans récupération auprès de l'origine.
Scénario 2 : Mise en cache à court terme des défaillances du serveur d'origine
Besoin métier : le serveur d'origine est parfois indisponible et renvoie des erreurs 5xx. Vous souhaitez réduire l'impact sur les utilisateurs finaux pendant l'interruption.
Configuration :
Condition de correspondance : All Requests
Code d'état : 5xx
TTL du cache : 60 secondes (1 minute)
Résultat : lorsque le serveur d'origine tombe en panne, le POP met en cache le code d'état 5xx pendant 1 minute, empêchant une augmentation soudaine des requêtes d'alourdir davantage la charge de l'origine. Au bout d'une minute, le POP effectue à nouveau une récupération depuis l'origine pour vérifier si le serveur a récupéré.
Vérifier la configuration
Une fois la configuration terminée, vérifiez qu'elle a pris effet en utilisant l'une des méthodes suivantes.
Méthode 1 : Utiliser la commande curl
-
Effacez le cache local et envoyez la première requête :
curl -I https://example.com/non-existent-pageL'en-tête de réponse doit contenir
x-site-cache-status: MISS. Cela indique la première récupération depuis l'origine. -
Demandez immédiatement à nouveau la même
URL:curl -I https://example.com/non-existent-pageL'en-tête de réponse doit contenir
x-site-cache-status: HIT, ce qui indique un succès de cache. La valeur de l'âge du cache doit également augmenter à chaque requête suivante.
Méthode 2 : Utiliser les outils de développement du navigateur
Ouvrez Chrome DevTools (appuyez sur F12), basculez vers l'onglet Network et cochez Preserve log.
Accédez à une ressource inexistante, telle que
https://example.com/test404.Consultez les
Response Headersdans les détails de la requête. La première requête affichex-site-cache-status: MISS. Les requêtes suivantes affichentx-site-cache-status: HIT, et la valeur de l'âge du cache augmente à chaque requête.
FAQ
Documentation connexe
Les fonctionnalités liées aux règles varient en termes de priorité effective, de réentrance et de granularité d'application. Pour plus de détails, consultez Caractéristiques des fonctionnalités basées sur des règles.