Questa pagina descrive come modificare le sostituzioni TTL con Cloud CDN. Le sostituzioni TTL ti consentono di avere un controllo granulare sul tempo per cui Cloud CDN memorizza nella cache i tuoi contenuti prima di convalidarli di nuovo.
Le impostazioni TTL sono riassunte nella tabella seguente.
TTL predefinito | TTL max | TTL cliente | |
---|---|---|---|
Motivo della configurazione | Migliorare i tassi di successo della cache per i contenuti che non cambiano spesso | Forza Cloud CDN a convalidare nuovamente i contenuti più spesso di quanto specificato da un'intestazione dell'origine | Forzare i client a convalidare più spesso i contenuti rispetto a Cloud CDN |
Utilizzato quando | Per una risposta corretta, una delle seguenti condizioni è vera:
|
Tutte le seguenti condizioni sono vere:
|
Una delle seguenti condizioni è vera:
|
Valore predefinito | 3600 secondi (1 ora) | 86.400 secondi (1 giorno) | 3600 secondi (1 ora) |
Valore massimo consentito | 31.622.400 secondi (1 anno) | 31.622.400 secondi (1 anno) | 31.622.400 secondi (1 anno) |
Note | Deve essere inferiore o uguale al TTL max--default-ttl=0 forza la convalida della risposta all'origine |
Deve essere inferiore o uguale al TTL massimo |
Prima di iniziare
Scopri di più sulle modalità cache.
Assicurati che Cloud CDN sia abilitato. Per istruzioni, consulta Utilizzare Cloud CDN.
Se necessario, esegui l'aggiornamento alla versione più recente di Google Cloud CLI:
gcloud components update
Impostare il TTL predefinito
Per migliorare i tassi di successo della cache per i contenuti che non cambiano spesso, puoi eseguire l'override del TTL predefinito in modo che Cloud CDN convalidi i contenuti all'origine meno di frequente. Tieni presente che gli oggetti a cui si accede di rado potrebbero essere espulsi dalla cache prima del TTL definito.
Quando la modalità cache è FORCE_CACHE_ALL
, il TTL predefinito sovrascrive il TTL impostato in tutte le risposte (incluse quelle con un TTL impostato dalle intestazioni dell'origine). In questa modalità, il TTL predefinito è visibile ai client perché Cloud CDN imposta gli attributi public
e max-age
delle risposte inviate ai client.
Per la modalità CACHE_ALL_STATIC
, il TTL predefinito si applica ai contenuti memorizzati nella cache forniti da un'origine per le risposte che non hanno un TTL valido esistente (intestazione max-age
, s-maxage
o Expires
). In modalità CACHE_ALL_STATIC
, il TTL predefinito
non modifica l'intestazione Cache-Control
inviata ai client. Per modificare l'intestazione Cache-Control
in modalità CACHE_ALL_STATIC
, devi impostare il TTL del client.
Quando imposti la modalità cache in modo da utilizzare le intestazioni di origine (USE_ORIGIN_HEADERS
), il valore TTL predefinito non viene applicato e non può essere impostato perché Cloud CDN utilizza la direttiva di origine max-age
o s-maxage
o l'intestazione Expires
.
Console
- Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic sul nome dell'Application Load Balancer esterno.
- Fai clic su Modifica .
- In Configurazione backend, seleziona un backend e fai clic su Modifica .
- Assicurati che l'opzione Attiva Cloud CDN sia selezionata.
- Assicurati che la modalità cache sia Memorizza nella cache il contenuto statico (consigliato) o Forza memorizzazione nella cache di tutto il contenuto. L'override dei valori TTL non è supportato quando la modalità cache è Usa le impostazioni dell'origine in base alle intestazioni Cache-Control.
- In Durata TTL predefinita, seleziona un valore.
- Fai clic su Salva.
gcloud
Per i servizi di backend, utilizza il comando gcloud compute backend-services
create
o
gcloud compute backend-services
update
con il flag --default-ttl
.
Per i bucket di backend, utilizza il comando gcloud compute backend-buckets
create
o
gcloud compute backend-buckets
update
con il flag --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
Sostituisci DEFAULT_TTL
con un valore massimo di 31.622.400 secondi (1
anno).
API
Per i bucket di backend, utilizza la chiamata API
Method: backendBuckets.insert
o
Method: backendBuckets.update
.
Per i servizi di backend, utilizza la chiamata API
Method: backendServices.insert
o
Method: backendServices.update
.
Utilizza una delle seguenti chiamate API:
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
Aggiungi il seguente snippet al corpo della richiesta JSON:
"cdnPolicy": { "defaultTtl": DEFAULT_TTL }
Sostituisci DEFAULT_TTL
con un valore massimo di 31.622.400 secondi (1
anno).
Imposta il TTL massimo
Il TTL massimo (max) specifica il TTL massimo consentito in Cloud CDN per i contenuti memorizzati nella cache pubblicati da un'origine.
Il TTL di una risposta è limitato dal TTL max se una delle seguenti condizioni è vera:
- La risposta tenta di impostare un
max-age
o uns-maxage
superiore al valore TTL max. - La risposta ha un'intestazione
Expires
più dicdnPolicy.maxTtl
secondi nel futuro.
L'impostazione TTL max non modifica il valore max-age
inviato al client. Per maggiori informazioni, consulta Ignorare il TTL client massimo. L'impostazione TTL
max influisce solo sul tempo per cui Cloud CDN tenta di memorizzare nella cache i contenuti.
Questa impostazione viene utilizzata solo quando la modalità cache è CACHE_ALL_STATIC
. Il valore massimo consentito è 31.622.400 secondi (1 anno). Tieni presente che gli oggetti a cui si accede raramente potrebbero essere espulsi dalla cache prima del TTL definito.
Con FORCE_CACHE_ALL
, il TTL è sempre impostato sul TTL predefinito; non puoi impostare un TTL massimo.
Console
- Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic sul nome dell'Application Load Balancer esterno.
- Fai clic su Modifica .
- In Configurazione backend, seleziona un backend e fai clic su Modifica .
- Assicurati che l'opzione Attiva Cloud CDN sia selezionata.
- Assicurati che la modalità cache sia Memorizza nella cache il contenuto statico (consigliato).
- In Durata massima, seleziona un valore.
- Fai clic su Salva.
gcloud
Per i servizi di backend, utilizza il comando gcloud compute backend-services
create
o
gcloud compute backend-services
update
con il flag --max-ttl
.
Per i bucket di backend, utilizza il comando gcloud compute backend-buckets
create
o
gcloud compute backend-buckets
update
con il flag --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
Sostituisci MAX_TTL
con un valore massimo di 31.622.400 secondi (1 anno).
API
Per i bucket di backend, utilizza la chiamata API
Method: backendBuckets.insert
o
Method: backendBuckets.update
.
Per i servizi di backend, utilizza la chiamata API
Method: backendServices.insert
o
Method: backendServices.update
.
Utilizza una delle seguenti chiamate API:
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
Aggiungi il seguente snippet al corpo della richiesta JSON:
"cdnPolicy": { "maxTtl": MAX_TTL }
Sostituisci MAX_TTL
con un valore massimo di 31.622.400 secondi (1 anno).
Sostituisci il TTL client
Per tutte le modalità cache, Cloud CDN passa le intestazioni Cache-Control
al client.
La TTL client consente di impostare una TTL massima per i contenuti inviati a browser o client in modo che i client convalidino più spesso i contenuti rispetto a Cloud CDN senza richiedere la riconvalida all'origine. In questo modo, i contenuti possono essere invalidati in Cloud CDN, se necessario, e i browser possono rilevare che i contenuti sono stati invalidati non appena scade la TTL del client.
In modalità FORCE_CACHE_ALL
, Cloud CDN in genere passa al client lo stesso max-age
che utilizza internamente per la memorizzazione nella cache proxy. Tuttavia, se viene specificato un valore TTL del client inferiore, questo viene passato al client
nella direttiva max-age
. Analogamente, in modalità CACHE_ALL_STATIC
, il TTL del client funge da limite per qualsiasi CACHE_ALL_STATIC
specificato dal server di origine, in modo che il CACHE_ALL_STATIC
inviato al browser o al client non sia maggiore del TTL del client configurato.max-age
max-age
Se l'origine non specifica alcun max-age
, viene utilizzato il valore minore del TTL di Cloud CDN e del valore TTL del client come max-age
inviato al browser o al client.
Se nella risposta dell'origine è presente un'intestazione Expires
, viene rimossa e sostituita con una direttiva Cache-Control: max-age
con il TTL appropriato.
Per le risposte di errore, se non è impostato alcun TTL della memorizzazione nella cache negativa, viene rimosso anche l'header Cache-Control
.
Poiché il TTL del client viene trattato come un valore massimo per quanto viene inviato ai browser o ai client, non può essere utilizzato per aumentare il valore max-age
che altrimenti verrebbe inviato. Se il valore max-age
inviato ai browser e ai client è inferiore a quello che ti aspetti, devi aumentare il valore della direttiva max-age
nella risposta restituita dall'origine oppure modificare in modo appropriato le impostazioni della TTL predefinita o della memorizzazione nella cache negativa.
In genere, un'impostazione TTL client di circa un giorno è un buon limite superiore pratico. Un'impostazione di un giorno significa che i browser eseguono il check-in con almeno questa frequenza e possono essere informati sull'annullamento della convalida della cache che potrebbe essersi verificato in Cloud CDN. Puoi impostare il TTL client su un valore molto più alto (fino a un anno) per consentire all'origine e ai TTL configurati di controllare completamente ciò che viene inviato al client. Questa opzione può essere utile se non vuoi che il browser esegua convalide più frequenti su Cloud CDN.
Console
- Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic sul nome dell'Application Load Balancer esterno.
- Fai clic su Modifica .
- In Configurazione backend, seleziona un backend e fai clic su Modifica .
- Assicurati che l'opzione Attiva Cloud CDN sia selezionata.
- Assicurati che la modalità cache sia Memorizza nella cache il contenuto statico (consigliato) o Forza memorizzazione nella cache di tutto il contenuto. L'override dei valori TTL non è supportato quando la modalità cache è Usa le impostazioni dell'origine in base alle intestazioni Cache-Control.
- In Durata client, seleziona un valore fino a 1 anno.
- Fai clic su Salva.
gcloud
Per i servizi di backend, utilizza il comando gcloud compute backend-services
create
o
gcloud compute backend-services
update
con il flag --client-ttl
.
Per i bucket di backend, utilizza il comando gcloud compute backend-buckets
create
o
gcloud compute backend-buckets
update
con il flag --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
Sostituisci CLIENT_TTL
con un valore massimo di 31.622.400 secondi (1 anno).
API
Per i bucket di backend, utilizza la chiamata API
Method: backendBuckets.insert
o
Method: backendBuckets.update
.
Per i servizi di backend, utilizza la chiamata API
Method: backendServices.insert
o
Method: backendServices.update
.
Utilizza una delle seguenti chiamate API:
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
Aggiungi il seguente snippet al corpo della richiesta JSON:
"cdnPolicy": { "clientTtl": CLIENT_TTL }
Sostituisci CLIENT_TTL
con un valore massimo di 31.622.400 secondi (1 anno).
Passaggi successivi
- Per scoprire i motivi della pubblicazione di contenuti obsoleti e scaduti, consulta Pubblicazione di contenuti obsoleti.