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 durée de validité du cache. Cette fonctionnalité réduit les requêtes répétées vers l'origine et allège la charge du serveur d'origine.
Cas d'usage
Par défaut, un POP ESA met une ressource en cache uniquement si le serveur d'origine renvoie un code d'état 2xx. Si le serveur d'origine retourne un code différent, comme 404 ou 502, vous pouvez définir un TTL (Time-To-Live) spécifique pour ce code. Le POP ESA répond alors directement sans transmettre chaque requête à l'origine.
Scénario typique
Le fichier A a été supprimé du serveur d'origine, mais les clients continuent d'y accéder. Comme le POP ESA n'a pas mis le fichier A en cache, toutes les requêtes correspondantes sont envoyées au serveur d'origine, qui répond par un code d'état 404. Cela augmente considérablement la charge sur le serveur d'origine.
Si vous configurez le POP ESA pour mettre en cache le code d'état 404, celui-ci est stocké dès la première récupération depuis l'origine. Les requêtes suivantes reçoivent alors une réponse 404 directement du POP ESA jusqu'à l'expiration du cache, évitant ainsi des accès inutiles à l'origine.
Procédure
Dans la console ESA, sélectionnez Site Management. 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 : code d'état HTTP à mettre en cache. Les codes 4xx (erreur client) et 5xx (erreur serveur) sont pris en charge, tels que 404, 502 et 503.
Expired At : durée pendant laquelle le POP conserve le code d'état en cache. La valeur peut varier de 1 seconde à 31 536 000 secondes (1 an). Une fois le TTL expiré, le POP récupère à nouveau le code d'état auprès du serveur d'origine.
Exemples de configuration
Scénario 1 : Mettre en cache les erreurs 404 pour les ressources statiques
Besoin métier : des images du dossier dédié ont pu être supprimées, mais la page frontale référence encore les anciens chemins.
Configuration :
Condition de correspondance : le chemin de l'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. Durant cette période, les requêtes suivantes pour la même image reçoivent une réponse 404 directement du POP, sans accès à l'origine.
Scénario 2 : Mise en cache temporaire en cas de défaillance du serveur d'origine
Besoin métier : le serveur d'origine est parfois indisponible et renvoie des erreurs 5xx. Vous souhaitez limiter l'impact sur les utilisateurs finaux pendant la panne.
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 un afflux de requêtes d'aggraver la charge de l'origine. Après 1 minute, le POP interroge à nouveau l'origine pour vérifier si le serveur est rétabli.
Vérifier la configuration
Une fois la configuration terminée, vérifiez qu'elle est effective en utilisant l'une des méthodes suivantes.
Méthode 1 : Utiliser la commande curl
-
Videz 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. -
Envoyez immédiatement la même
URLà nouveau :curl -I https://example.com/non-existent-pageL'en-tête de réponse doit contenir
x-site-cache-status: HIT, ce qui signale un succès de cache. La valeur d'âge du cache doit également s'incrémenter à chaque requête suivante.
Méthode 2 : Utiliser les outils de développement du navigateur
Ouvrez Chrome DevTools (appuyez sur F12), passez à l'onglet Network et cochez Preserve log.
Accédez à une ressource inexistante, par exemple
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 indiquentx-site-cache-status: HIT, et la valeur d'âge du cache s'incrémente à chaque requête.
FAQ
Pourquoi les requêtes sont-elles toujours envoyées au serveur d'origine après la configuration ?
Le cache a expiré : vérifiez si la valeur
TTLconfigurée n'est pas trop courte. Examinez les en-têtes de réponse tels queCache-Controlpour confirmer le TTL du cache.Paramètres d'URL différents : par défaut, des paramètres d'
URLdistincts sont traités comme des clés de cache différentes. Configurez des règles de clé de cache pour ignorer les paramètres non pertinents.La règle n'est pas effective : vérifiez les conditions de correspondance de la règle, notamment le modèle de chemin, afin de vous assurer qu'elles couvrent bien la requête cible.
Comment vérifier l'état du cache pour une URL spécifique ?
Utilisez la commande curl pour afficher les en-têtes de réponse détaillés :
curl -v -I https://example.com/target-url
En-têtes de réponse clés :
x-site-cache-status: HIT— Succès de cachex-site-cache-status: MISS— Échec de cache, récupération depuis l'origine effectuéeCache-Control:max-age=120— Le cache est actif depuis 120 secondes
Comment purger manuellement le cache pour un code d'état spécifique ?
Vous pouvez actualiser le cache par URL ou par dossier.
Documentation associée
Les fonctionnalités liées aux règles varient en termes de priorité d'application, de réentrance et de granularité. Pour plus de détails, consultez Propriétés des fonctionnalités liées aux règles.