Modificare le impostazioni e gli override TTL

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:
  • modalità cache = FORCE_CACHE_ALL
  • cache mode = CACHE_ALL_STATIC, content-type è memorizzabile nella cache in modo statico e un TTL non è impostato dalle intestazioni di origine (max-age, s-maxage o Expires)
Si verificano tutte le seguenti condizioni:
  • modalità cache = CACHE_ALL_STATIC
  • Un TTL è impostato dalle intestazioni di origine (max-age, s-maxage o Expires)
  • Il TTL specificato nell'intestazione di origine è maggiore del valore TTL massimo
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 del client è inferiore al TTL impostato dall'intestazione di origine (o TTL predefinito se non sono presenti informazioni di 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 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

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

    Vai a Bilanciamento del carico

  2. Fai clic sul nome del bilanciatore del carico delle applicazioni esterno.
  3. Fai clic su Modifica .
  4. In Configurazione backend, seleziona un backend e fai clic su Modifica .
  5. Assicurati che l'opzione Abilita Cloud CDN sia selezionata.
  6. 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.
  7. In Durata 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 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 o s-maxage superiore al valore TTL massimo.
  • La risposta ha un'intestazione Expires che supera i cdnPolicy.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

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

    Vai a Bilanciamento del carico

  2. Fai clic sul nome del bilanciatore del carico delle applicazioni esterno.
  3. Fai clic su Modifica .
  4. In Configurazione backend, seleziona un backend e fai clic su Modifica .
  5. Assicurati che l'opzione Abilita Cloud CDN sia selezionata.
  6. Assicurati che sia impostata la modalità cache Memorizza contenuti statici nella cache (consigliata).
  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 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

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

    Vai a Bilanciamento del carico

  2. Fai clic sul nome del bilanciatore del carico delle applicazioni esterno.
  3. Fai clic su Modifica .
  4. In Configurazione backend, seleziona un backend e fai clic su Modifica .
  5. Assicurati che l'opzione Abilita Cloud CDN sia selezionata.
  6. 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.
  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 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