CDN cache MISS à chaque POP pour la même URL d’image
Cet article décrit pourquoi les images diffusées par une servlet dans Adobe Experience Manager as a Cloud Service peuvent entraîner des pertes dans le cache du réseau CDN à différents points de présence CDN (POP), même lorsque les en-têtes de contrôle du cache spécifient une durée de vie de 24 heures, et fournit des conseils sur le comportement attendu de la mise en cache CDN.
Description description
Environnement
Adobe Experience Manager as a Cloud Service (toutes versions)
Problème/Symptômes
Un servlet renvoie des images JPEG pour les pages de magasin et définit un en-tête Cache-Control: max-age=86400 (24 heures). Cependant, les journaux CDN indiquent que la même URL d’image est récupérée plusieurs fois à partir de l’instance de publication au cours d’une journée, avec l’état de cache MISS à différents emplacements CDN (POP).
Exemples d’entrées de journal :
- Masquer MISS dans le cache POP « RTM » pour
/path/sample.jpg - Masquer MISS dans POP « TOJ » pour
/path/sample.jpg
Il est attendu que l’image soit mise en cache et diffusée à partir du réseau CDN pendant 24 heures après la première requête, quel que soit le POP. Au lieu de cela, chaque POP rencontre un MISS de cache lors de sa première demande pour l’image.
Cause
Chaque réseau CDN POP exploite son propre cache. La première requête pour une ressource au niveau de chaque objet POP génère une erreur MISS, et seules les requêtes suivantes en provenance de cet objet POP sont diffusées à partir du cache jusqu’à l’expiration de la TTL.
Résolution resolution
Pour résoudre le problème, procédez comme suit :
- Sachez que chaque réseau CDN POP conserve son propre cache. La première requête pour une URL donnée à chaque POP entraîne un manque dans le cache ; les requêtes suivantes à partir de ce même POP (bien que la durée de vie soit valide) entraînent un accès au cache.
- Assurez-vous que le servlet définit des en-têtes de cache explicites pour le navigateur et le réseau CDN. Utilisez
Cache-Control: max-age=86400, publicet envisagez d’ajouter desSurrogate-Controlou dess-maxagepour la TTL spécifique au réseau CDN, le cas échéant. - Évitez d’utiliser les directives
privateouno-store, car elles empêchent la mise en cache CDN. - Utilisez des outils tels que
curlet passer en revue les journaux du réseau CDN pour confirmer que la première requête à chaque point de connexion est un MSS et que les requêtes suivantes du même point de connexion dans la durée de vie sont des accès.
Pour plus d’informations, consultez la documentation sur la mise en cache du réseau CDN .