In questa pagina viene descritto come modificare gli override TTL con Cloud CDN. Gli override TTL ti offrono un controllo granulare per quanto tempo 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 cambiano di rado | Forza Cloud CDN a riconvalidare i contenuti più spesso di specificato da un'intestazione di origine | Forzare maggiormente la riconvalida dei contenuti da parte dei client spesso rispetto a Cloud CDN |
Utilizzata 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
Ulteriori informazioni sulle modalità cache.
Assicurati che Cloud CDN sia abilitato. per le istruzioni, vedi Utilizzo di Cloud CDN.
Se necessario, esegui l'aggiornamento alla versione più recente di Google Cloud CLI:
gcloud components update
Imposta il TTL predefinito
Per migliorare i tassi di hit 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 raramente potrebbero essere rimossi dalla cache prima del TTL definito.
Quando la modalità cache è impostata su FORCE_CACHE_ALL
, il TTL predefinito sostituisce il TTL impostato
in tutte le risposte (incluse quelle che hanno un TTL impostato da intestazioni di 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 pubblicati nella cache
in base a un'origine per le risposte che non hanno un TTL valido esistente (max-age
,
s-maxage
o Expires
). In modalità CACHE_ALL_STATIC
, il TTL predefinito
non modifica l'intestazione Cache-Control
pubblicata per i clienti. Per modificare l'intestazione Cache-Control
in modalità CACHE_ALL_STATIC
, devi impostare il TTL del cliente.
Quando imposti la modalità cache per utilizzare le intestazioni di origine (USE_ORIGIN_HEADERS
),
Il valore TTL predefinito non si applica e non può essere impostato perché Cloud CDN
utilizza 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 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 è impostata su Utilizza le impostazioni dell'origine in base a Cache-Control intestazioni.
- In Durata predefinita, seleziona un valore.
- Fai clic su Salva.
gcloud
Per i servizi di backend, utilizza gcloud compute backend-services
create
o
Comando gcloud compute backend-services
update
con il flag --default-ttl
.
Per i bucket di backend, utilizza la classe gcloud compute backend-buckets
create
o
Comando 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
Method: backendServices.insert
oppure
Method: backendServices.update
chiamata API.
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 entro Cloud CDN per i contenuti memorizzati nella cache forniti da un'origine.
Il TTL di una risposta è limitato dal TTL max se una delle seguenti condizioni è vera:
- La risposta tenta di impostare un valore
max-age
os-maxage
superiore al TTL massimo valore. - La risposta ha un'intestazione
Expires
di durata superiore acdnPolicy.maxTtl
secondi per il futuro.
L'impostazione del TTL massimo non modifica il valore max-age
inviato al client. della
Per ulteriori informazioni, consulta Ignorare il TTL massimo del client. Il valore massimo
L'impostazione TTL influenza solo il periodo di tempo durante il quale Cloud CDN tenta di memorizzare nella cache
contenuti.
Questa impostazione viene utilizzata soltanto quando la modalità cache è CACHE_ALL_STATIC
. Il valore massimo consentito è 31.622.400 secondi (1 anno). Tieni presente che raramente
gli oggetti a cui si accede potrebbero essere eliminati dalla cache prima del TTL definito.
Con FORCE_CACHE_ALL
, il TTL è sempre impostato sul valore predefinito
TTL; 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 Abilita Cloud CDN sia selezionata.
- Assicurati che la modalità cache sia Memorizzazione nella cache dei contenuti statici (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 la classe gcloud compute backend-buckets
create
o
Comando 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
Method: backendBuckets.insert
oppure
Method: backendBuckets.update
chiamata API.
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.
Il TTL client consente di impostare un TTL massimo per ciò che viene inviato ai browser o client in modo che i client riconvalidino il contenuto rispetto a Cloud CDN più spesso, senza richiedere la riconvalida all'origine. In questo modo, i contenuti possono essere invalidato entro Cloud CDN quando necessario e i browser possono scoprire che il contenuto è verrà annullata non appena scade il TTL client.
In modalità FORCE_CACHE_ALL
, Cloud CDN normalmente trasmette lo stesso max-age
al client che usa internamente per la memorizzazione nella cache del proxy; Tuttavia, se un cliente
Il TTL è specificato ed è un valore inferiore; il TTL del client viene trasmesso al client.
nell'istruzione max-age
. Analogamente, in modalità CACHE_ALL_STATIC
,
il TTL client funge da blocco per qualsiasi elemento max-age
specificato dall'origine
in modo che il valore di max-age
inviato al browser o al client non sia più grande di
il TTL del client configurato. Se non viene specificato alcun valore max-age
dall'origine,
inferiore rispetto al TTL di Cloud CDN e il valore TTL del client viene utilizzato come
max-age
inviato al browser o client.
Se è presente un'intestazione Expires
nella risposta dell'origine, viene rimossa e
sostituito con un'istruzione Cache-Control: max-age
con il TTL appropriato.
Per le risposte di errore, se non viene impostato un TTL di memorizzazione nella cache negativa, Cache-Control
viene rimossa anche l'intestazione.
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
viene inviato a browser e client
è inferiore a quello desiderato, devi aumentare il valore dell'istruzione max-age
in
la risposta restituita dall'origine o modificare il TTL predefinito
o di memorizzazione nella cache negativa in modo appropriato.
Di solito, un'impostazione TTL client di circa un giorno è un'ottima soluzione pratica vincolato. L'impostazione un giorno indica che i browser eseguono il check-in almeno con questo frequenza e può apprendere le invalidazioni della cache che potrebbero essersi verificate con Cloud CDN. Puoi impostare il TTL del client molto più alto (fino a un anno) come per consentire all'origine e ai TTL configurati di controllare completamente viene inviato al client. Questa operazione può essere utile se non vuoi che il browser eseguire convalide più frequenti rispetto a 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 Attiva Cloud CDN sia selezionata.
- Assicurati che la modalità cache sia impostata su Memorizza contenuti statici (consigliato) oppure Forza la cache di tutti i contenuti. L'override dei valori TTL non è supportato quando la modalità cache è impostata su Utilizza le impostazioni dell'origine in base a Cache-Control intestazioni.
- 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 la classe gcloud compute backend-buckets
create
o
Comando 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
Method: backendBuckets.insert
oppure
Method: backendBuckets.update
chiamata API.
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 conoscere i motivi della pubblicazione di contenuti inattivi e scaduti, consulta Pubblicare contenuti obsoleti.