Modificare le impostazioni e gli override TTL

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

  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 è impostata su Utilizza le impostazioni dell'origine in base a Cache-Control intestazioni.
  7. In Durata predefinita, seleziona un valore.
  8. 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 o s-maxage superiore al TTL massimo valore.
  • La risposta ha un'intestazione Expires di durata superiore a cdnPolicy.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

  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 Abilita Cloud CDN sia selezionata.
  6. Assicurati che la modalità cache sia Memorizzazione nella cache dei contenuti statici (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 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

  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 Attiva Cloud CDN sia selezionata.
  6. 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.
  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 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