Pourquoi Amazon CloudFront ne met-il pas en cache les fichiers pendant la durée que j'ai spécifiée ?

Lecture de 3 minute(s)
0

Je souhaite spécifier la durée pendant laquelle ma distribution Amazon CloudFront met en cache les objets. J'ai donc ajouté les en-têtes Cache-Control ou Expires à l'origine. Cependant, CloudFront ne met pas en cache les objets pendant la durée que j'ai spécifiée, ou bien il ne les met pas en cache du tout.

Résolution

Vérifiez que les directives que vous avez définies dans les en-têtes Cache-Control ou Expires ne sont pas en contradiction les unes avec les autres. Il est recommandé d'utiliser la directive 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 Cache-Control max-age.

Vérifiez que la valeur TTL minimum, la valeur TTL par défaut et la valeur TTL maximum que vous définissez sur la distribution CloudFront ne sont pas en contradiction avec les en-têtes Cache-Control ou Expires.

Si ces paramètres de durée de cache sont contradictoires, il se peut que CloudFront ne mette pas les objets en cache pendant la durée définie, ou qu'il ne les mette pas en cache du tout. Évitez ces exemples de paramètres de durée de cache qui sont en contradiction les uns avec les autres :

  • La durée TTL maximum est fixé à 5 minutes (300 secondes) et l'en-tête Cache-Control max-age est fixé à 1 heure (3 600 secondes). Dans ce cas, CloudFront met en cache l'objet pendant 5 minutes au lieu d'une heure.
  • L'en-tête Cache-Control max-age est fixée à 3 heures et l'en-tête Expires est définie sur 1 mois. Dans ce cas, CloudFront met en cache l'objet pendant 3 heures au lieu d'un mois.
  • Les TTL par défaut, minimum et maximum sont fixés à 0 seconde. Dans ce cas, CloudFront vérifie toujours qu'il dispose du contenu le plus récent depuis l'origine.
  • Le TTL minimum est fixé à 60 secondes, le TTL par défaut est fixé à 300 secondes et le TTL maximum est fixé à 3600 secondes. Si l'origine ne fournit pas d'en-têtes de cache, tels que Cache-Control max-age ou Expires, CloudFront met en cache l'objet pendant la durée TTL par défaut.

**Important :**Si vous mettez à jour une ressource d'origine avec un en-tête de cache, CloudFront ne reflète la modification qu'une fois qu’il a envoyé une nouvelle demande à votre origine. CloudFront envoie une nouvelle demande à votre origine lorsque l'actif mis en cache expire dans les emplacements périphériques. Votre distribution reçoit ensuite une nouvelle demande pour l'actif. Pour forcer CloudFront à refléter la mise à jour avant que l'actif mis en cache ne soit configuré pour expirer, invalidez le cache.

Informations connexes

Mise en cache d'objets

Gestion de la durée de conservation de contenu dans le cache (expiration)

Contrôle de la durée pendant laquelle CloudFront met en cache les erreurs

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 8 mois