Questa pagina descrive come modificare gli override TTL con Cloud CDN. Gli override TTL ti consentono di controllare in modo granulare per quanto tempo Cloud CDN memorizza nella cache i tuoi contenuti prima di convalidarli nuovamente.
Le impostazioni TTL sono riassunte nella tabella seguente.
| TTL predefinito | TTL max | TTL client | |
|---|---|---|---|
| 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 di origine | Forza i client a convalidare più spesso i contenuti rispetto a Cloud CDN |
| Utilizzato quando | Per il successo dell'operazione, una delle seguenti condizioni è vera:
|
Tutte le condizioni seguenti 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 massimo--default-ttl=0impone una nuova convalida della risposta all'origine |
Deve essere inferiore o uguale al TTL max |
Prima di iniziare
Scopri di più sulle modalità cache.
Assicurati che Cloud CDN sia abilitato. Per 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 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 nuovamente i contenuti all'origine meno frequentemente. Tieni presente che gli oggetti a cui si accede raramente potrebbero essere rimossi 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 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). Nella modalità CACHE_ALL_STATIC, il TTL predefinito non modifica l'intestazione Cache-Control inviata ai client. Per modificare l'intestazione Cache-Control nella 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 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 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 pari 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 chiamate API seguenti:
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 pari 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 max se si verifica una delle seguenti condizioni:
- La risposta tenta di impostare un valore
max-ageos-maxagesuperiore al TTL max. - La risposta ha un'intestazione
Expirescon una data futura di oltrecdnPolicy.maxTtlsecondi.
L'impostazione TTL max non modifica il valore max-age inviato al client. Per saperne di più, consulta Override del TTL client massimo. L'impostazione TTL max influisce solo sul periodo di tempo durante il quale 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 rimossi dalla cache prima del TTL definito.
Con FORCE_CACHE_ALL, il TTL è sempre impostato sul TTL predefinito; non puoi impostare un TTL max.
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 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 pari 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 chiamate API seguenti:
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 pari a 31.622.400 secondi (1 anno).
Esegui l'override del 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 i contenuti inviati a browser o client in modo che i client convalidino nuovamente i contenuti rispetto a Cloud CDN più spesso, senza richiedere la riconvalida all'origine. In questo modo, la convalida dei contenuti può essere annullata in Cloud CDN quando necessario e i browser possono rilevare che i contenuti non sono più convalidati non appena scade il TTL client.
In modalità FORCE_CACHE_ALL, Cloud CDN in genere trasmette al client lo stesso max-age che utilizza internamente per la memorizzazione nella cache del proxy. Tuttavia, se viene specificato un TTL client che ha un valore inferiore, il TTL client viene passato al client nell'istruzione max-age. Allo stesso modo, in modalità CACHE_ALL_STATIC, il TTL client funge da limite per qualsiasi valore max-age specificato dal server di origine, in modo che il valore max-age inviato al browser o al client non sia superiore al TTL client configurato. Se l'origine non specifica alcun max-age, viene utilizzato il valore inferiore tra il TTL di Cloud CDN e il TTL client 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 è impostato alcun TTL di memorizzazione nella cache negativa, viene rimossa anche l'intestazione Cache-Control.
Poiché il TTL client viene trattato come valore massimo per i dati inviati 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 che vorresti, devi aumentare il valore dell'istruzione max-age nella risposta restituita dall'origine o modificare le impostazioni del TTL predefinito o della memorizzazione nella cache negativa in modo appropriato.
In genere, nella pratica un'impostazione TTL client di circa un giorno è un buon limite superiore. Un'impostazione di un giorno indica che i browser eseguono il check-in con almeno questa frequenza e possono scoprire gli annullamenti della convalida della cache che potrebbero essersi verificati 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. Può essere utile se non vuoi che il browser esegua 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 Abilita 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 pari 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 chiamate API seguenti:
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 pari a 31.622.400 secondi (1 anno).
Passaggi successivi
- Per scoprire i motivi per cui pubblicare contenuti obsoleti e scaduti, consulta Pubblica contenuti scaduti.