Questa pagina fornisce istruzioni per cambiare le modalità della cache con Cloud CDN. Le modalità cache ti consentono di configurare il modo in cui Cloud CDN memorizza i contenuti nella cache.
Prima di iniziare
Scopri di più sulle modalità cache e i contenuti statici.
Assicurati che Cloud CDN sia attivo; per le istruzioni, consulta Utilizzo di Cloud CDN.
Se necessario, esegui l'aggiornamento all'ultima versione di Google Cloud CLI:
gcloud components update
Impostare la modalità cache
Cloud CDN offre tre modalità di cache, che definiscono il modo in cui le risposte vengono memorizzate nella cache, se Cloud CDN rispetta le istruzioni cache inviate dall'origine e come vengono applicate le TTL cache.
Le modalità di memorizzazione nella cache disponibili sono mostrate nella seguente tabella:
Modalità cache | Comportamento |
---|---|
CACHE_ALL_STATIC |
Memorizza automaticamente nella cache le risposte riuscite con contenuti statici che non sono altrimenti non memorizzabili nella cache.
Anche le risposte dell'origine che impostano istruzioni di memorizzazione nella cache valide vengono memorizzate nella cache. Questo è il comportamento predefinito per i backend abilitati per Cloud CDN creati utilizzando Google Cloud CLI o l'API REST. |
USE_ORIGIN_HEADERS |
Richiede risposte di origine riuscite per impostare istruzioni di cache valide e intestazioni di memorizzazione nella cache valide. Le risposte riuscite senza queste istruzioni vengono inoltrate dall'origine. |
FORCE_CACHE_ALL |
Memorizza nella cache le risposte riuscite in modo incondizionato, sostituendo le istruzioni della cache impostate dall'origine. Questa modalità non è appropriata se il backend pubblica contenuti privati per ciascun utente, ad esempio risposte HTML o API dinamiche. |
Le risposte agli errori potrebbero essere memorizzate nella cache anche in assenza di istruzioni valide per la cache.
Prima di impostare la modalità cache su FORCE_CACHE_ALL
, considera i seguenti comportamenti:
Per gli URL firmati o i cookie firmati,
FORCE_CACHE_ALL
sostituisce l'età massima specificata tramite l'impostazione Età massima della cache nella console Google Cloud o l'opzionegcloud --signed-url-cache-max-age
.FORCE_CACHE_ALL
modifica la durata (TTL) di tutti i contenuti memorizzati nella cache in precedenza. Questa modifica può causare che alcune voci considerate in precedenza aggiornate (a causa della maggiore durata di TTL dalle intestazioni dell'origine) vengano considerate inattive e che alcune voci considerate in precedenza siano considerate non aggiornate.FORCE_CACHE_ALL
sostituisce le istruzioni cache (Cache-Control
eExpires
), ma non le altre intestazioni dell'origine delle risposte. In particolare, un'intestazioneVary
è ancora rispettata e può omettere la memorizzazione nella cache anche in presenza diFORCE_CACHE_ALL
. Per ulteriori informazioni, consulta Vary headers.
Per configurare le modalità cache per un backend compatibile con Cloud CDN:
Console
- Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic sul nome del bilanciatore del carico HTTP(S) 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:
- Memorizza nella cache il contenuto statico (consigliato): il contenuto statico è costituito da asset web che non cambiano per ogni utente. I contenuti statici si basano sul
Content-Type
nella risposta. Per ulteriori informazioni, consulta i contenuti statici. - Utilizza le impostazioni dell'origine in base alle intestazioni Cache-Control: memorizza le risposte nella cache con istruzioni di cache valide nelle intestazioni delle risposte.
- Forza memorizzazione nella cache di tutti i contenuti: memorizza nella cache tutti i contenuti riusciti pubblicati dall'origine, ignorando eventuali istruzioni
private
ono-store
.
- Memorizza nella cache il contenuto statico (consigliato): il contenuto statico è costituito da asset web che non cambiano per ogni utente. I contenuti statici si basano sul
- 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 --cache-mode
.
Per i bucket di backend, utilizza il comando gcloud compute backend-buckets
create
o 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 una delle seguenti opzioni:
CACHE_ALL_STATIC
(impostazione predefinita): vengono memorizzati automaticamente nella cache contenuti statici. Le risposte contrassegnate come non memorizzabili nella cache (istruzioniprivate
ono-store
nelle intestazioni delle risposteCache-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 l'origine per impostare intestazioni di memorizzazione nella cache valide per memorizzare nella cache il contenuto. Le risposte senza queste intestazioni non vengono memorizzate nella cache a livello perimetrale di Google e richiedono un viaggio completo verso l'origine in ogni richiesta, con un potenziale impatto sulle prestazioni e un aumento del carico sul server di origine.FORCE_CACHE_ALL
: memorizza nella cache tutti i contenuti (ovvero le risposte riuscite), ignorando eventuali istruzioniprivate
ono-store
nelle intestazioni delle risposteCache-Control
. Ciò potrebbe comportare la memorizzazione nella cache di contenuti privati per utente (identificabili dall'utente). Abilita questa opzione solo sui backend che non gestiscono contenuti privati o dinamici, come i bucket di Cloud Storage. Non abilitare questa opzione sui backend che pubblicano contenuti privati o dinamici.
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": { "cacheMode": (CACHE_ALL_STATIC | USE_ORIGIN_HEADERS | FORCE_CACHE_ALL)
Sostituisci CACHE_MODE
con una delle seguenti opzioni:
CACHE_ALL_STATIC
(impostazione predefinita): nella cache, vengono memorizzati automaticamente nella cache contenuti statici se l'origine non imposta intestazione di memorizzazione nella cache valide. Le risposte contrassegnate come non memorizzabili nella cache (istruzioniprivate
ono-store
nelle intestazioni delle risposteCache-Control
) non vengono memorizzate nella cache. Per memorizzare i contenuti dinamici nella cache, i contenuti devono avere intestazioni di memorizzazione nella cache valide.USE_ORIGIN_HEADERS
: richiede l'origine per impostare intestazioni di memorizzazione nella cache valide per memorizzare i contenuti nella cache. Le risposte senza queste intestazioni non vengono memorizzate nella cache a livello perimetrale di Google e richiedono un viaggio completo verso l'origine in ogni richiesta, con un potenziale impatto sulle prestazioni e un aumento del carico sul server di origine.FORCE_CACHE_ALL
: memorizza nella cache tutti i contenuti (ovvero le risposte riuscite), ignorando eventuali istruzioniprivate
ono-store
nelle intestazioni delle risposteCache-Control
. Ciò potrebbe comportare la memorizzazione nella cache di contenuti privati per utente (identificabili dall'utente). Devi abilitare questa opzione solo sui backend che non gestiscono contenuti privati o dinamici, come i bucket Cloud Storage.