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 :

  1. 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.
  2. 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, public et envisagez d’ajouter des Surrogate-Control ou des s-maxage pour la TTL spécifique au réseau CDN, le cas échéant.
  3. Évitez d’utiliser les directives private ou no-store, car elles empêchent la mise en cache CDN.
  4. Utilisez des outils tels que curl et 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 ​ .

recommendation-more-help
experience-cloud-kcs-help-kbarticles