Como usar modos de cache

Nesta página, fornecemos instruções para usar os modos de cache com o Cloud CDN. Os modos de cache permitem configurar como o Cloud CDN armazena seu conteúdo em cache.

Antes de começar

  • Leia sobre modos de cache e conteúdo estático.

  • Verifique se o Cloud CDN está ativado. Para instruções, consulte Como usar o Cloud CDN.

  • Se necessário, atualize para a versão mais recente do SDK do Cloud:

    gcloud components update
    

Como definir o modo de cache

O Cloud CDN oferece três modos de cache, que definem como as respostas serão armazenadas em cache, se o Cloud CDN vai respeitar as diretivas de cache enviadas pela origem e como os TTLs do cache serão aplicados.

Os modos de cache disponíveis são mostrados na tabela a seguir:

Modo cache Comportamento
USE_ORIGIN_HEADERS Requer respostas de origem para definir diretivas de cache e cabeçalhos de cache válidos. As respostas sem essas diretivas são encaminhadas da origem.

Esse é o comportamento padrão para back-ends ativados para o Cloud CDN criados com a ferramenta de linha de comando gcloud ou a API REST.

CACHE_ALL_STATIC Armazena automaticamente o conteúdo estático que não tem a diretiva no-store, private ou no-cache. As respostas de origem que definem diretivas de armazenamento em cache válidas também são armazenadas em cache.
FORCE_CACHE_ALL Armazena incondicionalmente as respostas em cache, substituindo quaisquer diretivas de cache definidas pela origem. Não armazene em cache conteúdo privado por usuário (como HTML dinâmico ou respostas da API) se estiver usando um back-end compartilhado com esse modo configurado.

Para configurar os modos de cache para um back-end ativado para o Cloud CDN:

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar a página "Balanceamento de carga"

  2. Clique no nome do balanceador de carga HTTP(S) externo.
  3. Clique em Editar .
  4. Em Configuração de back-end, selecione um back-end e clique em Editar .
  5. Verifique se a opção Ativar o Cloud CDN está selecionada.
  6. Em Modo de cache, selecione uma das seguintes opções:
    • Armazene em cache o conteúdo estático (recomendado): são recursos da Web que não são alterados para cada usuário. O conteúdo estático é baseado no Content-Type na resposta. Para mais informações, consulte conteúdo estático.
    • Use as configurações de origem com base nos cabeçalhos de controle de cache: respostas de cache com diretivas de cache válidas nos cabeçalhos de resposta.
    • Forçar cache de todo o conteúdo: armazene em cache todo o conteúdo veiculado pela origem, ignorando todas as diretivas private, no-store ou no-cache.
  7. Clique em Salvar.

gcloud

Para serviços de back-end, use o comando gcloud compute backend-services create ou gcloud compute backend-services update com a sinalização --cache-mode.

Para buckets de back-end, use o comando gcloud compute backend-buckets create ou gcloud compute backend-buckets update com a sinalização --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

Substitua CACHE_MODE por um dos seguintes:

  • CACHE_ALL_STATIC: armazena automaticamente em cache o conteúdo estático. As respostas marcadas como não armazenáveis em cache (as diretivas private, no-store ou no-cache nos cabeçalhos de resposta Cache-Control) não são armazenadas. Para armazenar conteúdo dinâmico em cache, o conteúdo precisa ter cabeçalhos de cache válidos.

  • USE_ORIGIN_HEADERS: exige a origem para definir cabeçalhos de cache válidos a fim de armazenar conteúdo em cache. As respostas sem esses cabeçalhos não são armazenadas em cache na borda do Google e exigem uma viagem completa à origem em todas as solicitações, o que pode afetar o desempenho e aumentar a carga no servidor de origem. Esse é o comportamento padrão para back-ends ativados para o Cloud CDN criados com a ferramenta de linha de comando gcloud ou a API REST.

  • FORCE_CACHE_ALL: armazena em cache todo o conteúdo, ignorando todas as diretivas private, no-store ou no-cache em cabeçalhos de resposta Cache-Control. Isso pode resultar no armazenamento em cache de conteúdo particular por usuário (identificação de usuários). Ative a função somente em back-ends que não exibem conteúdo particular ou dinâmico, como buckets do Cloud Storage. Não ative em back-ends que estejam veiculando conteúdo privado ou dinâmico.

API

Para buckets de back-end, use a chamada de API Method: backendBuckets.insert ou Method: backendBuckets.update.

Para serviços de back-end, use a chamada de API Method: backendServices.insert ou Method: backendServices.update.

Use uma das seguintes chamadas de 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

Adicione o seguinte snippet ao corpo da solicitação JSON:

"cdnPolicy": {
  "cacheMode": (CACHE_ALL_STATIC | USE_ORIGIN_HEADERS | FORCE_CACHE_ALL)

Substitua CACHE_MODE por um dos seguintes:

  • CACHE_ALL_STATIC (padrão): armazena automaticamente o conteúdo estático em cache. As respostas marcadas como não armazenáveis em cache (as diretivas private, no-store ou no-cache nos cabeçalhos de resposta Cache-Control) não são armazenadas. Para armazenar conteúdo dinâmico em cache, o conteúdo precisa ter cabeçalhos de cache válidos.

  • USE_ORIGIN_HEADERS: exige a origem para definir cabeçalhos de cache válidos a fim de armazenar conteúdo em cache. As respostas sem esses cabeçalhos não são armazenadas em cache na borda do Google e exigem uma viagem completa à origem em todas as solicitações, o que pode afetar o desempenho e aumentar a carga no servidor de origem. Esse é o comportamento padrão para back-ends ativados para o Cloud CDN criados com a ferramenta de linha de comando gcloud ou a API REST.

  • FORCE_CACHE_ALL: armazena em cache todo o conteúdo, ignorando todas as diretivas private, no-store ou no-cache em cabeçalhos de resposta Cache-Control. Isso pode resultar no armazenamento em cache de conteúdo particular por usuário (identificação de usuários). Ative a função somente em back-ends que não exibem conteúdo particular ou dinâmico, como buckets do Cloud Storage.