Cette page explique comment modifier les remplacements TTL avec Cloud CDN. Les remplacements TTL vous permettent de contrôler avec précision la durée pendant laquelle Cloud CDN met en cache votre contenu avant de le revalider.
Les paramètres TTL sont résumés dans le tableau suivant.
Valeur TTL par défaut | Valeur TTL maximale | Valeur TTL client | |
---|---|---|---|
Motif de configuration | Améliorer les taux de succès de cache (hits) pour les contenus qui ne changent pas souvent | Forcer Cloud CDN à revalider le contenu plus souvent que l'intervalle spécifié par un en-tête d'origine | Forcer les clients à revalider les contenus plus souvent avec Cloud CDN |
Utilisé lorsque | Pour l'obtention d'une réponse positive, l'une des affirmations suivantes est vraie :
|
Toutes les conditions suivantes sont remplies :
|
L'une des affirmations suivantes est vraie :
|
Valeur par défaut | 3 600 secondes (1 heure) | 86 400 secondes (1 jour) | 3 600 secondes (1 heure) |
Valeur maximale autorisée | 31 622 400 secondes (1 an) | 31 622 400 secondes (1 an) | 31 622 400 secondes (1 an) |
Remarques | Doit être inférieure ou égale à la valeur TTL maximale--default-ttl=0 force la revalidation de la réponse à l'origine. |
Doit être inférieur ou égal à la valeur TTL maximale. |
Avant de commencer
Consultez la section concernant les modes de cache.
Assurez-vous que Cloud CDN est activé. Pour obtenir des instructions, consultez la page Utiliser Cloud CDN.
Si nécessaire, installez la dernière version de Google Cloud CLI :
gcloud components update
Définir la valeur TTL par défaut
Pour améliorer les taux de succès de cache (hits) pour le contenu qui ne change pas souvent, vous pouvez remplacer la valeur TTL par défaut afin que Cloud CDN revalide moins fréquemment les contenus à l'origine. Notez que les objets rarement utilisés peuvent être supprimés du cache avant la valeur TTL définie.
Lorsque le mode de cache est FORCE_CACHE_ALL
, la valeur TTL par défaut remplace la valeur TTL définie dans toutes les réponses (y compris celles dont la valeur TTL est définie par les en-têtes d'origine). Dans ce mode, la valeur TTL par défaut est visible par les clients, car Cloud CDN définit les attributs public
et max-age
des réponses diffusées aux clients.
En mode CACHE_ALL_STATIC
, la valeur TTL par défaut s'applique au contenu mis en cache diffusé par une origine, pour les réponses qui n'ont pas de valeur TTL valide (en-tête max-age
, s-maxage
ou Expires
). En mode CACHE_ALL_STATIC
, la valeur TTL par défaut ne modifie pas l'en-tête Cache-Control
diffusé aux clients. Pour modifier l'en-tête Cache-Control
en mode CACHE_ALL_STATIC
, vous devez définir la valeur TTL du client.
Lorsque vous définissez le mode cache pour utiliser des en-têtes d'origine (USE_ORIGIN_HEADERS
), la valeur TTL par défaut ne s'applique pas et ne peut pas être définie, car Cloud CDN utilise à la place l'instruction d'origine max-age
ou s-maxage
, ou l'en-tête Expires
.
Console
- Dans la console Google Cloud, accédez à la page Équilibrage de charge.
- Cliquez sur le nom de votre équilibreur de charge d'application externe.
- Cliquez sur Modifier .
- Dans Configuration du backend, sélectionnez un backend, puis cliquez sur Modifier .
- Assurez-vous que l'option Activer Cloud CDN est sélectionnée.
- Assurez-vous que le mode de cache est défini sur Mettre en cache le contenu statique (recommandé) ou Forcer la mise en cache de tous les contenus. Le remplacement des valeurs TTL n'est pas disponible lorsque le mode de cache est défini sur Utiliser les paramètres d'origine basés sur les en-têtes Cache-Control.
- Sous Valeur TTL par défaut, saisissez une valeur.
- Cliquez sur Enregistrer.
gcloud
Pour les services de backend, exécutez la commande gcloud compute backend-services
create
ou gcloud compute backend-services
update
avec l'option --default-ttl
.
Pour les buckets backend, exécutez la commande gcloud compute backend-buckets
create
ou gcloud compute backend-buckets
update
avec l'option --default-ttl
.
gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME --default-ttl=DEFAULT_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME --default-ttl=DEFAULT_TTL
Remplacez DEFAULT_TTL
par une valeur allant jusqu'à 31 622 400 secondes (un an).
API
Pour les buckets backend, utilisez l'appel d'API Method: backendBuckets.insert
ou Method: backendBuckets.update
.
Pour les services de backend, utilisez l'appel d'API Method: backendServices.insert
ou Method: backendServices.update
.
Utilisez l'un des appels d'API suivants :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
Ajoutez l'extrait suivant au corps de la requête JSON :
"cdnPolicy": { "defaultTtl": DEFAULT_TTL }
Remplacez DEFAULT_TTL
par une valeur allant jusqu'à 31 622 400 secondes (un an).
Définir la valeur TTL maximale
La valeur TTL maximale (max) spécifie la valeur TTL maximale autorisée dans Cloud CDN pour le contenu mis en cache diffusé par une origine.
La valeur TTL d'une réponse est limitée par la valeur TTL maximale si l'une des conditions suivantes est remplie :
- La réponse tente de définir une valeur
max-age
ous-maxage
supérieure à la valeur TTL maximale. - La réponse comporte un en-tête
Expires
correspondant à plus decdnPolicy.maxTtl
secondes dans le futur.
Le paramètre TTL maximal ne modifie pas la valeur max-age
envoyée au client. Pour en savoir plus, consultez la section Remplacer la valeur TTL maximale du client. Le paramètre TTL maximal n'affecte que la durée pendant laquelle Cloud CDN tente de mettre en cache le contenu.
Ce paramètre n'est utilisé que lorsque le mode de cache est défini sur CACHE_ALL_STATIC
. La valeur maximale autorisée est de 31 622 400 secondes (un an). Notez que les objets rarement utilisés peuvent être supprimés du cache avant la valeur TTL définie.
Avec FORCE_CACHE_ALL
, la valeur TTL est toujours définie sur la valeur TTL par défaut. Vous ne pouvez pas définir de valeur TTL maximale.
Console
- Dans la console Google Cloud, accédez à la page Équilibrage de charge.
- Cliquez sur le nom de votre équilibreur de charge d'application externe.
- Cliquez sur Modifier .
- Dans Configuration du backend, sélectionnez un backend, puis cliquez sur Modifier .
- Assurez-vous que l'option Activer Cloud CDN est sélectionnée.
- Assurez-vous que le mode de cache est défini sur Mettre en cache le contenu statique (recommandé).
- Sous Valeur TTL maximale, sélectionnez une valeur.
- Cliquez sur Enregistrer.
gcloud
Pour les services de backend, exécutez la commande gcloud compute backend-services
create
ou gcloud compute backend-services
update
avec l'option --max-ttl
.
Pour les buckets backend, exécutez la commande gcloud compute backend-buckets
create
ou gcloud compute backend-buckets
update
avec l'option --max-ttl
.
gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME --max-ttl=MAX_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME --max-ttl=MAX_TTL
Remplacez MAX_TTL
par une valeur allant jusqu'à 31 622 400 secondes (un an).
API
Pour les buckets backend, utilisez l'appel d'API Method: backendBuckets.insert
ou Method: backendBuckets.update
.
Pour les services de backend, utilisez l'appel d'API Method: backendServices.insert
ou Method: backendServices.update
.
Utilisez l'un des appels d'API suivants :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
Ajoutez l'extrait suivant au corps de la requête JSON :
"cdnPolicy": { "maxTtl": MAX_TTL }
Remplacez MAX_TTL
par une valeur allant jusqu'à 31 622 400 secondes (un an).
Remplacer la valeur TTL du client
Pour tous les modes cache, Cloud CDN transmet les en-têtes Cache-Control
au client.
La valeur TTL client vous permet de définir une valeur TTL maximale pour les navigateurs ou les clients afin que ces clients puissent revalider le contenu avec Cloud CDN de manière plus régulière, sans aucune revalidation nécessaire à l'origine. Ainsi, le contenu peut être invalidé dans Cloud CDN si nécessaire, et les navigateurs peuvent détecter que le contenu n'est plus valide dès l'expiration du délai TTL client.
En mode FORCE_CACHE_ALL
, Cloud CDN transmet normalement la même valeur max-age
au client qu'il utilise en interne pour la mise en cache du proxy. Toutefois, en cas de valeur TTL client spécifiée inférieure, celle-ci est transmise au client dans l'instruction max-age
. De même, en mode CACHE_ALL_STATIC
, la valeur TTL client sert à bloquer toute valeur maximale max-age
spécifiée par le serveur d'origine, de sorte que la valeur max-age
envoyée au navigateur ou au client ne soit pas supérieure à la valeur TTL client configurée. Si aucune valeur max-age
n'est spécifiée par l'origine, la valeur la plus faible entre la valeur TTL de Cloud CDN par défaut et la valeur TTL du client est utilisée en tant que valeur max-age
envoyée au navigateur ou au client.
Si un en-tête Expires
est présent dans la réponse d'origine, il est supprimé et remplacé par une instruction Cache-Control: max-age
avec la valeur TTL appropriée.
Pour les réponses d'erreur, si aucune valeur TTL de mise en cache négatif n'est définie, l'en-tête Cache-Control
est également supprimé.
Comme la valeur TTL du client est traitée comme une valeur maximale pour les éléments envoyés aux navigateurs ou aux clients, elle ne peut pas être utilisée pour augmenter la valeur max-age
qui serait envoyée autrement. Si la valeur max-age
envoyée aux navigateurs et aux clients n'est pas suffisante pour vous, vous devez augmenter la valeur de l'instruction max-age
dans la réponse renvoyée par l'origine, ou ajuster les paramètres de la valeur TTL par défaut ou du cache négatif.
En règle générale, une valeur TTL du client d'environ un jour constitue une bonne limite supérieure pratique. Une valeur d'un jour signifie que les navigateurs se connectent au moins à cette fréquence et peuvent en apprendre davantage sur les invalidations de cache qui ont pu se produire dans Cloud CDN. Vous pouvez définir la valeur TTL du client sur une valeur beaucoup plus élevée (jusqu'à un an) pour permettre aux valeurs TTL d'origine et configurée de contrôler entièrement ce qui est envoyé au client. Cela peut être utile si vous ne souhaitez pas que le navigateur effectue des validations plus fréquentes sur Cloud CDN.
Console
- Dans la console Google Cloud, accédez à la page Équilibrage de charge.
- Cliquez sur le nom de votre équilibreur de charge d'application externe.
- Cliquez sur Modifier .
- Dans Configuration du backend, sélectionnez un backend, puis cliquez sur Modifier .
- Assurez-vous que l'option Activer Cloud CDN est sélectionnée.
- Assurez-vous que le mode de cache est défini sur Mettre en cache le contenu statique (recommandé) ou Forcer la mise en cache de tous les contenus. Le remplacement des valeurs TTL n'est pas disponible lorsque le mode de cache est défini sur Utiliser les paramètres d'origine basés sur les en-têtes Cache-Control.
- Sous Valeur TTL client, sélectionnez une valeur (un an au maximum).
- Cliquez sur Enregistrer.
gcloud
Pour les services de backend, exécutez la commande gcloud compute backend-services
create
ou gcloud compute backend-services
update
avec l'option --client-ttl
.
Pour les buckets backend, exécutez la commande gcloud compute backend-buckets
create
ou gcloud compute backend-buckets
update
avec l'option --client-ttl
.
gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME --client-ttl=CLIENT_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME --client-ttl=CLIENT_TTL
Remplacez CLIENT_TTL
par une valeur allant jusqu'à 31 622 400 secondes (un an).
API
Pour les buckets backend, utilisez l'appel d'API Method: backendBuckets.insert
ou Method: backendBuckets.update
.
Pour les services de backend, utilisez l'appel d'API Method: backendServices.insert
ou Method: backendServices.update
.
Utilisez l'un des appels d'API suivants :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
Ajoutez l'extrait suivant au corps de la requête JSON :
"cdnPolicy": { "clientTtl": CLIENT_TTL }
Remplacez CLIENT_TTL
par une valeur allant jusqu'à 31 622 400 secondes (un an).
Étape suivante
- Pour en savoir plus sur les raisons de diffuser du contenu obsolète ou expiré, consultez la page Diffuser du contenu obsolète.