Cambia modalità cache

Questa pagina fornisce istruzioni per cambiare le modalità cache con con Cloud CDN. Le modalità cache ti consentono di configurare il modo in cui Cloud CDN memorizza nella cache i tuoi contenuti.

Prima di iniziare

  • Scopri di più sulle modalità della cache e sui contenuti statici.

  • Assicurati che Cloud CDN sia abilitato. Per istruzioni, consulta Utilizzo di Cloud CDN.

  • Se necessario, esegui l'aggiornamento alla versione più recente di Google Cloud CLI:

    gcloud components update
    

Impostazione della modalità cache

Cloud CDN offre tre modalità cache, che definiscono il modo in cui le risposte vengono memorizzati nella cache, indipendentemente dal fatto che Cloud CDN rispetti le direttive di cache inviate dal e come vengono applicati i TTL della cache.

Le modalità di cache disponibili sono riportate nella tabella seguente:

Modalità cache Comportamento
CACHE_ALL_STATIC Memorizza automaticamente nella cache le risposte riuscite con contenuti statici che non sono altrimenti non possono essere memorizzati nella cache. Anche le risposte provenienti dall'origine, che impostano valide direttive di memorizzazione nella cache, vengono memorizzate nella cache.

Questo è il comportamento predefinito per i servizi Cloud CDN abilitati backend creati utilizzando Google Cloud CLI o l'API REST.

USE_ORIGIN_HEADERS Richiede risposte provenienti dall'origine per impostare direttive di memorizzazione nella cache e intestazioni di memorizzazione nella cache valide. Le risposte corrette senza queste direttive vengono inoltrate dall'origine.
FORCE_CACHE_ALL Memorizza nella cache incondizionatamente le risposte riuscite, eseguendo l'override di qualsiasi cache direttive impostate dall'origine. Questa modalità non è appropriata se il backend pubblica contenuti privati per utente, ad esempio API o HTML dinamici diverse.

Le risposte di errore possono essere memorizzate nella cache persino in assenza di direttive di memorizzazione nella cache valide.

Prima di impostare la modalità cache su FORCE_CACHE_ALL, tieni presente quanto segue comportamenti:

  • Per URL o cookie firmati: FORCE_CACHE_ALL sostituisce l'età massima specificata tramite Cache l'impostazione di età massima delle voci nella console Google Cloud o l'opzione gcloud --signed-url-cache-max-age.

  • FORCE_CACHE_ALL modifica la durata (TTL) di qualsiasi contenuto memorizzato nella cache in precedenza. Questa modifica può causare la presenza di alcune voci prese in precedenza nuovi (a causa della presenza di TTL più lunghi dalle intestazioni delle origini) siano considerati inattivi, e può far sì che alcune voci precedentemente considerate obsolete siano considerati aggiornati.

  • FORCE_CACHE_ALL esegue l'override delle istruzioni di cache (Cache-Control e Expires) ma non sostituisce altre intestazioni di risposta dell'origine. In particolare, un Vary viene rispettata e può eliminare la memorizzazione nella cache anche in presenza di FORCE_CACHE_ALL. Per ulteriori informazioni, vedi Vary intestazioni.

Per configurare le modalità cache per un backend abilitato per Cloud CDN:

Console

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

    Vai alla pagina 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. In Modalità cache, seleziona una delle seguenti opzioni:
    • Cache dei contenuti statici (opzione consigliata): statica contenuti sono asset web che non cambiano per ogni utente. Il contenuto statico è in base al valore Content-Type nella risposta. Per ulteriori informazioni, vedi contenuti statici.
    • Utilizza le impostazioni dell'origine in base alle intestazioni Cache-Control: Cache risposte con istruzioni cache valide nelle intestazioni della risposta.
    • Forza memorizzazione nella cache di tutto il contenuto: memorizza nella cache tutti i contenuti pubblicati correttamente dall'origine, ignorando eventuali direttive private o no-store.
  7. 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 --cache-mode.

Per i bucket di backend, utilizza la classe gcloud compute backend-buckets create o Comando gcloud compute backend-buckets update con il flag --cache-mode.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --cache-mode=CACHE_MODE
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --cache-mode=CACHE_MODE

Sostituisci CACHE_MODE con uno dei seguenti:

  • CACHE_ALL_STATIC (predefinito): memorizza automaticamente nella cache statica contenuti multimediali. Risposte che contrassegnati come non memorizzabili nella cache (private o no-store istruzioni in Cache-Control intestazioni di risposta) non vengono memorizzate nella cache. Per memorizzare nella cache i contenuti dinamici, i contenuti devono avere intestazioni di memorizzazione nella cache valide.

  • USE_ORIGIN_HEADERS: richiede l'impostazione dell'origine intestazioni di memorizzazione nella cache valide della cache. Le risposte senza queste intestazioni non vengono memorizzate nella cache e richiedono un viaggio completo verso l'origine per ogni richiesta, a influire sulle prestazioni e aumentando il carico sul server di origine.

  • FORCE_CACHE_ALL: memorizza nella cache tutti i contenuti (ovvero le risposte riuscite), ignorando eventuali istruzioni private o no-store in Cache-Control intestazioni di risposta. Ciò potrebbe causare la memorizzazione nella cache di contenuti privati per ciascun utente (utente identificabile). Abilitala solo sui backend che non pubblicano contenuti privati o dinamici, come Cloud Storage bucket. Non abilitare questa opzione sui backend che gestiscono contenuti privati o dinamici contenuti.

API

Per i bucket di backend, utilizza Method: backendBuckets.insert oppure Method: backendBuckets.update chiamata API.

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": {
  "cacheMode": (CACHE_ALL_STATIC | USE_ORIGIN_HEADERS | FORCE_CACHE_ALL)

Sostituisci CACHE_MODE con uno dei seguenti:

  • CACHE_ALL_STATIC (predefinito): memorizza automaticamente nella cache statica content se l'origine non è impostata intestazioni di memorizzazione nella cache valide. Le risposte contrassegnate come non memorizzabili nella cache (istruzioni private o no-store nelle intestazioni di risposta Cache-Control) non vengono memorizzate nella cache. Per memorizzare nella cache i contenuti dinamici, I contenuti devono avere intestazioni di memorizzazione nella cache valide.

  • USE_ORIGIN_HEADERS: richiede all'origine di impostare intestazioni di memorizzazione nella cache valide per memorizzare nella cache i contenuti. Le risposte senza queste intestazioni non vengono memorizzate nella cache e richiedono un viaggio completo verso l'origine per ogni richiesta, a influire sulle prestazioni e aumentando il carico sul server di origine.

  • FORCE_CACHE_ALL: memorizza nella cache tutti i contenuti (ovvero le risposte riuscite), ignorando eventuali istruzioni private o no-store in Cache-Control intestazioni di risposta. Ciò potrebbe causare la memorizzazione nella cache di dati (identificabili dall'utente). Abilita questa funzionalità solo sui backend che non pubblicano contenuti privati o dinamici, ad esempio di archiviazione dei bucket Cloud Storage.