Je souhaite spécifier la durée de mise en cache des objets par la distribution Amazon CloudFront et j'ai donc ajouté des en-têtes Cache-Control ou Expires sur l'origine. Toutefois, CloudFront ne met pas les objets en cache selon la durée que j'ai spécifiée ou ne les met pas en cache du tout. Pourquoi cela se produit-il ?

Assurez-vous que les directives que vous avez définies pour les en-têtes Cache-Control ou Expires ne sont pas en conflit les unes avec les autres. Il est recommandé d'utiliser l'en-tête Cache-Control max-age au lieu de l'en-tête Expires. Si vous spécifiez des valeurs pour les deux, CloudFront utilise uniquement la valeur que vous avez définie pour l'en-tête Cache-Control max-age.

En outre, vérifiez que les paramètres Minimum TTL (durée de vie minimale), Default TTL (durée de vie par défaut) et Maximum TTL (durée de vie maximale) que vous avez définis sur la distribution CloudFront ne sont pas en conflit avec les en-têtes Cache-Control ou Expires.

Si ces paramètres de durée de mise en cache sont en conflit les uns avec les autres, CloudFront risque de ne pas mettre les objets en cache selon la durée que vous avez spécifiée sur les en-têtes Cache-Control ou Expires ou de ne pas les mettre en cache du tout. Évitez ces exemples de paramètres de durée de cache, qui sont en conflit les uns avec les autres :

  • Si vous définissez la durée de vie maximale sur cinq minutes (300 secondes) et l'en-tête Cache-Control max-age sur une heure (3 600 secondes), CloudFront met l'objet en cache pendant cinq minutes au lieu d'une heure.
  • Si vous définissez l'en-tête Cache-Control max-age sur trois heures et l'en-tête Expires sur un mois, CloudFront met l'objet en cache pendant trois heures au lieu d'un mois.
  • Si vous définissez les durées de vie minimale, par défaut et maximale sur 0 seconde, CloudFront vérifie toujours qu'il dispose du contenu le plus récent depuis l'origine.

Important : si vous mettez à jour une ressource d'origine avec un en-tête de mise en cache, CloudFront reflète les modifications uniquement après avoir effectué une nouvelle demande auprès de l'origine. CloudFront effectue une nouvelle demande auprès de l'origine lorsque la ressource mise en cache expire dans les emplacements périphériques. La distribution reçoit alors une nouvelle demande pour la ressource. Si vous avez besoin que CloudFront reflète la mise à jour avant la configuration d'expiration de la ressource mise en cache, vous pouvez invalider le cache.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 09/04/2018

Date de mise à jour : 24/03/2019