In questa pagina viene descritto come modificare gli override TTL con Cloud CDN. Gli override TTL offrono un controllo granulare sul periodo di tempo in cui Cloud CDN memorizza i contenuti nella cache prima di riconvalidarli.
Le impostazioni TTL sono riassunte nella tabella seguente.
TTL predefinito | TTL max | TTL cliente | |
---|---|---|---|
Motivo della configurazione | Migliorare le percentuali di successo della cache per i contenuti che non cambiano spesso | Forza Cloud CDN a riconvalidare i contenuti più spesso di quanto specificato da un'intestazione di origine | Forza i client a riconvalidare più spesso i contenuti rispetto a Cloud CDN |
Utilizzata quando | Per una risposta corretta, una delle seguenti condizioni è vera:
|
Si verificano tutte le seguenti condizioni:
|
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 minore o uguale al TTL massimo--default-ttl=0 forza la riconvalida della risposta nell'origine |
Deve essere minore o uguale al TTL massimo |
Prima di iniziare
Leggi ulteriori informazioni sulle modalità cache.
Assicurati che Cloud CDN sia abilitato. Per le istruzioni, consulta Utilizzo di Cloud CDN.
Se necessario, esegui l'aggiornamento all'ultima versione di Google Cloud CLI:
gcloud components update
Imposta il TTL predefinito
Per migliorare le percentuali di successo della cache per i contenuti che non cambiano spesso, puoi eseguire l'override del TTL predefinito in modo che Cloud CDN riconvalida il contenuto all'origine meno frequentemente. Tieni presente che gli oggetti a cui si accede raramente potrebbero essere eliminati 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 di origine). In questa modalità, il TTL predefinito è visibile ai client, perché Cloud CDN imposta gli attributi public
e max-age
delle risposte fornite 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
pubblicata per i client. Per modificare l'intestazione Cache-Control
in modalità CACHE_ALL_STATIC
, devi impostare il TTL 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 invece l'istruzione 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 del bilanciatore del carico delle applicazioni esterno.
- Fai clic su Modifica .
- In Configurazione backend, seleziona un backend e fai clic su Modifica .
- Assicurati che l'opzione Abilita Cloud CDN sia selezionata.
- Assicurati che sia impostata la modalità cache Memorizza contenuti statici nella cache (opzione consigliata) o Forza memorizzazione nella cache di tutto il contenuto. L'override dei valori TTL non è supportato quando la modalità cache è Utilizza le impostazioni dell'origine basate sulle intestazioni Cache-Control.
- In Durata 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 fino a 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 fino a 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 forniti da un'origine.
Il TTL di una risposta è limitato dal TTL massimo se una delle seguenti condizioni è vera:
- La risposta tenta di impostare un valore
max-age
os-maxage
superiore al valore TTL massimo. - La risposta ha un'intestazione
Expires
che supera icdnPolicy.maxTtl
secondi.
L'impostazione TTL massimo non modifica il valore max-age
inviato al client. Per
ulteriori informazioni, consulta la sezione Sostituire il TTL massimo del client. L'impostazione TTL massimo influisce solo sul tempo per cui Cloud CDN tenta di memorizzare i contenuti nella cache.
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 rimossi 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 del bilanciatore del carico delle applicazioni esterno.
- Fai clic su Modifica .
- In Configurazione backend, seleziona un backend e fai clic su Modifica .
- Assicurati che l'opzione Abilita Cloud CDN sia selezionata.
- Assicurati che sia impostata la modalità cache Memorizza contenuti statici nella cache (consigliata).
- 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 fino a 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 fino a 31.622.400
secondi (1 anno).
Esegui l'override del TTL client
Per tutte le modalità cache, Cloud CDN trasmette le intestazioni Cache-Control
al client.
Il TTL client consente di impostare un TTL massimo per ciò che viene inviato a browser o client, in modo che i client riconvalidino i contenuti rispetto a Cloud CDN più spesso, senza richiedere la riconvalida all'origine. In questo modo, è possibile annullare la validità dei contenuti in Cloud CDN quando necessario e i browser possono rilevare la validità della validità dei contenuti alla scadenza del TTL del client.
In modalità FORCE_CACHE_ALL
, Cloud CDN di solito passa lo stesso max-age
al client che utilizza internamente per la memorizzazione nella cache del proxy. Tuttavia, se viene specificato un TTL client e il suo valore è inferiore, il TTL del client viene passato al client nell'istruzione max-age
. Allo stesso modo, in modalità CACHE_ALL_STATIC
, il TTL client funge da clamp per qualsiasi max-age
specificato dal server di origine, in modo che il valore max-age
inviato al browser o al client non superi il TTL client configurato. Se non viene specificato alcun valore max-age
dall'origine, il valore
minore del TTL di Cloud CDN e del valore TTL del client viene utilizzato come
max-age
inviato al browser o al client.
Se nella risposta dell'origine è presente un'intestazione Expires
, questa viene rimossa e sostituita con un'istruzione Cache-Control: max-age
con il TTL appropriato.
Per le risposte di errore, se non viene impostato un TTL memorizzazione nella cache negativa, viene rimossa anche l'intestazione Cache-Control
.
Poiché il TTL del client viene considerato come un valore massimo per ciò che viene inviato a browser o client, non può essere utilizzato per aumentare il valore max-age
che altrimenti verrebbe inviato. Se il valore max-age
inviato a browser e client è inferiore a quello desiderato, devi aumentare il valore dell'istruzione max-age
nella risposta restituita dall'origine o modificare le impostazioni di TTL predefinito o di memorizzazione nella cache negativa in modo appropriato.
In genere, un'impostazione TTL del client di circa un giorno è un buon limite superiore pratico. L'impostazione di un giorno fa sì che i browser controllino con almeno questa frequenza e possano apprendere le invalidazioni della cache che potrebbero verificarsi in Cloud CDN. Puoi impostare il TTL del client molto più alto (fino a un anno) per consentire all'origine e ai TTL configurati di controllare completamente ciò che viene inviato al client. Questo 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 del bilanciatore del carico delle applicazioni esterno.
- Fai clic su Modifica .
- In Configurazione backend, seleziona un backend e fai clic su Modifica .
- Assicurati che l'opzione Abilita Cloud CDN sia selezionata.
- Assicurati che sia impostata la modalità cache Memorizza contenuti statici nella cache (opzione consigliata) o Forza memorizzazione nella cache di tutto il contenuto. L'override dei valori TTL non è supportato quando la modalità cache è Utilizza le impostazioni dell'origine basate sulle 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 fino a 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 fino a 31.622.400
secondi (1 anno).
Passaggi successivi
- Per conoscere i motivi della pubblicazione di contenuti obsoleti e scaduti, consulta la sezione Pubblicare contenuti obsoleti.