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'opzionegcloud --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
eExpires
) ma non sostituisce altre intestazioni di risposta dell'origine. In particolare, unVary
viene rispettata e può eliminare la memorizzazione nella cache anche in presenza diFORCE_CACHE_ALL
. Per ulteriori informazioni, vedi Vary intestazioni.
Per configurare le modalità cache per un backend abilitato per 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 Attiva Cloud CDN sia selezionata.
- 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
ono-store
.
- Cache dei contenuti statici (opzione consigliata): statica
contenuti sono asset web che non cambiano per ogni utente. Il contenuto statico è
in base al valore
- 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
ono-store
istruzioni inCache-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 istruzioniprivate
ono-store
inCache-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 (istruzioniprivate
ono-store
nelle intestazioni di rispostaCache-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 istruzioniprivate
ono-store
inCache-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.