Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Pourquoi ma distribution CloudFront utilise-t-elle les paramètres de cache de mon origine lorsque je configure la mise en cache d'objets personnalisée ?
Je souhaite comprendre pourquoi ma distribution Amazon CloudFront utilise les paramètres de cache de mon origine lorsque je configure la mise en cache d'objets personnalisée.
Brève description
Lorsque vous personnalisez la mise en cache des objets, vous configurez la durée de vie par défaut (TTL par défaut), la TTL minimale et la TTL maximale.
CloudFront utilise le comportement suivant :
- Si l'origine ne renvoie pas d'en-tête de mise en cache, la distribution CloudFront utilise la TTL par défaut.
- Si l'origine renvoie un en-tête de mise en cache inférieur à la TTL minimale, la distribution utilise la TTL minimale.
- Si l'origine renvoie un en-tête de mise en cache supérieur à la TTL maximale, la distribution utilise la TTL maximale.
Remarque : La réponse au client contient les en-têtes de mise en cache de l'origine, même lorsque CloudFront met en cache la réponse en fonction de la TTL minimale ou de la TTL maximale. Tous les caches privés, tels qu'un navigateur ou un proxy, peuvent utiliser l'en-tête de mise en cache de l'origine.
Si votre distribution n’est pas mise en cache en fonction de votre valeur TTL par défaut, vérifiez que les en-têtes de mise en cache de l'origine ne sont pas en conflit.
Résolution
Identifier les en-têtes de mise en cache en conflit
Vérifiez si les en-têtes de mise en cache de l'origine sont en conflit avec la mise en cache d'objets personnalisée de votre distribution.
La TTL minimale et la TTL par défaut sont définies sur 0, mais les résultats de CloudFront sont toujours mis en cache
Consultez la réponse de CloudFront pour vérifier si la valeur de X-Cache est Hit depuis cloudfront ou Hit de refresh depuis cloudfront :
< HTTP/1.1 200 OK < Content-Type: text/html < Content-Length: 437 < Connection: keep-alive < Date: Sat, 03 Feb 2018 19:26:45 GMT < Last-Modified: Sat, 03 Feb 2018 19:25:24 GMT < ETag: "example12345abcdefghijklmno54321" < Cache-Control: max-age=300, Public < Accept-Ranges: bytes < Server: AmazonS3 < Age: 14 < X-Cache: Hit from cloudfront
Si X-Cache est Hit depuis cloudfront ou Hit de refresh depuis cloudfront, la requête provient du cache de l'emplacement périphérique. Dans un hit de refresh, CloudFront revalide auprès de l’origine que l'objet expiré n'a pas été modifié, puis s’actualise lorsque l'objet est obsolète.
Vérifiez les valeurs de Cache-Control, Expire et Âge dans la réponse. Si la valeur de max-age pour Cache-Control est supérieure à la valeur de Âge, la réponse mise en cache provient du cache CloudFront. Si la date d’expiration est toujours dans le futur, la réponse mise en cache n'est pas non plus obsolète. Ce comportement est normal, même si le chemin du comportement de cache possède une TTL minimale et une TTL par défaut définis sur 0.
Remarque : Dans l'exemple précédent, la TTL maximale est supérieure à 0. Lorsque toutes les valeurs de TTL sont définies sur 0, la mise en cache est désactivée.
La TTL maximale et la TTL par défaut sont supérieures à 0, mais des échecs sont survenus dans CloudFront
Consultez la réponse de CloudFront pour vérifier si la valeur de X-Cache est Échec de cloudfront :
< HTTP/1.1 200 OK < Content-Type: text/html < Content-Length: 437 < Connection: keep-alive < Date: Sat, 03 Feb 2018 19:26:45 GMT < Last-Modified: Sat, 03 Feb 2018 19:25:24 GMT < ETag: "example12345abcdefghijklmno54321" < Cache-Control: no-cache, no-store < Accept-Ranges: bytes < Server: AmazonS3 < X-Cache: Miss from cloudfront
Si X-Cache est Échec de cloudfront, cela signifie que la requête provient de l'origine et non du cache.
Si la valeur de Cache-Control est no-store, l'en-tête demande à CloudFront de ne pas mettre la réponse en cache. Si Cache-Control est no-cache, l'en-tête demande à CloudFront de vérifier auprès de l'origine avant de renvoyer une réponse mise en cache. Si Cache-Control est privé, CloudFront ne doit stocker la réponse que dans des caches privés, tels que le cache local d'un navigateur.
Ces comportements annulent les paramètres TTL maximale et TTL par défaut.
Remarque : Les réponses qui ne proviennent pas du cache n'ont pas d'en-tête Âge.
Dans les exemples précédents, le paramètre TTL minimale est défini sur 0. Si TTL minimale est supérieur à 0, CloudFront met l'objet en cache, même si la réponse contient des directives no-cache, no-store ou privé. Pour plus d'informations, consultez la section Spécifier la durée pendant laquelle CloudFront met les objets en cache.
CloudFront met en cache les réponses aux erreurs
CloudFront transmet les réponses d'erreur de l'origine au client et met en cache la réponse d'erreur de l'origine pendant 10 secondes par défaut.
Si la réponse d'erreur de l'origine contient un en-tête Cache-Control, CloudFront met l'erreur en cache avec la TTL appropriée au lieu des 10 secondes par défaut.
Pour vérifier si la réponse d'erreur provient de l'origine ou de CloudFront, consultez la valeur de Serveur. Pour vérifier si l'erreur provient d'une réponse mise en cache, vérifiez si la réponse inclut l'en-tête Âge.
L'exemple suivant est une erreur provenant d'une origine Amazon Simple Storage Service (Amazon S3) qui est une réponse mise en cache :
< HTTP/1.1 403 Forbidden < Content-Type: application/xml < Transfer-Encoding: chunked < Connection: keep-alive < Date: Sat, 03 Feb 2018 21:07:51 GMT < Server: AmazonS3 < Age: 12 < X-Cache: Error from cloudfront
L'exemple suivant est une erreur de CloudFront qui n'est pas une réponse mise en cache :
< HTTP/1.1 403 Forbidden < Server: CloudFront < Date: Sat, 03 Feb 2018 21:14:53 GMT < Content-Type: text/xml < Content-Length: 146 < Connection: keep-alive < X-Cache: Error from cloudfront
Mettre à jour l'origine
Après avoir identifié les en-têtes de mise en cache qui remplacent la mise en cache d'objets personnalisée de votre distribution, mettez à jour l'origine.
Procédez comme suit :
- Identifiez l'emplacement des en-têtes dans la configuration du serveur Web.
- Supprimez les lignes sur lesquelles les en-têtes sont appliqués.
- Redémarrez le serveur.
- Testez votre origine pour vérifier que les en-têtes de mise en cache ne sont plus renvoyés dans la réponse.
- Exécutez une invalidation sur l'ensemble de votre distribution CloudFront pour appliquer la modification.
Informations connexes
Mettre du contenu en cache en fonction des en-têtes de requête
Gérer la durée de conservation de contenu dans le cache (expiration)
- Balises
- Amazon CloudFront
- Langue
- Français

Contenus pertinents
- demandé il y a 2 ans
- Réponse acceptéedemandé il y a 2 ans
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a 7 mois
AWS OFFICIELA mis à jour il y a 4 ans