Modificare le impostazioni e gli override TTL

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:
  • modalità cache = FORCE_CACHE_ALL
  • cache mode = CACHE_ALL_STATIC, il tipo di contenuto è memorizzabile nella cache in modo statico e un TTL non è impostato dalle intestazioni di origine (max-age, s-maxage o Expires)
Tutte le seguenti condizioni sono vere:
  • modalità cache = CACHE_ALL_STATIC
  • Un TTL viene impostato dalle intestazioni di origine (max-age, s-maxage o Expires)
  • Il TTL specificato nell'intestazione dell'origine è maggiore del valore TTL max
Una delle seguenti condizioni è vera:
  • modalità cache = FORCE_CACHE_ALL e il valore TTL del client è inferiore al TTL di Cloud CDN
  • modalità cache = CACHE_ALL_STATIC e il TTL client è inferiore al TTL impostato dall'intestazione dell'origine (o al TTL predefinito se non sono presenti informazioni sull'intestazione dell'origine)
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

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome dell'Application Load Balancer esterno.
  3. Fai clic su Modifica .
  4. In Configurazione backend, seleziona un backend e fai clic su Modifica .
  5. Assicurati che l'opzione Attiva Cloud CDN sia selezionata.
  6. 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.
  7. In Durata TTL predefinita, seleziona un valore.
  8. 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 un s-maxage superiore al valore TTL max.
  • La risposta ha un'intestazione Expires più di cdnPolicy.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

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome dell'Application Load Balancer esterno.
  3. Fai clic su Modifica .
  4. In Configurazione backend, seleziona un backend e fai clic su Modifica .
  5. Assicurati che l'opzione Attiva Cloud CDN sia selezionata.
  6. Assicurati che la modalità cache sia Memorizza nella cache il contenuto statico (consigliato).
  7. In Durata massima, seleziona un valore.
  8. 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-agemax-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

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome dell'Application Load Balancer esterno.
  3. Fai clic su Modifica .
  4. In Configurazione backend, seleziona un backend e fai clic su Modifica .
  5. Assicurati che l'opzione Attiva Cloud CDN sia selezionata.
  6. 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.
  7. In Durata client, seleziona un valore fino a 1 anno.
  8. 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