Esta página descreve como alterar substituições de TTL com o Cloud CDN. As modificações de TTL oferecem um controle detalhado sobre por quanto tempo o Cloud CDN armazena conteúdo em cache antes de revalidá-lo.
As configurações de TTL estão resumidas na tabela a seguir.
TTL padrão | TTL máx. | TTL do cliente | |
---|---|---|---|
Motivo para configurar | Melhorar as taxas de ocorrência em cache de conteúdo que não muda com frequência | Forçar o Cloud CDN a revalidar conteúdo com mais frequência do que o especificado por um cabeçalho de origem | Forçar os clientes a revalidar conteúdo com uma frequência maior que a do Cloud CDN |
Usado quando | Para uma resposta bem-sucedida, uma das opções a seguir é verdadeira:
|
Todas estas opções são verdadeiras:
|
Uma destas opções é verdadeira:
|
Valor padrão | 3.600 segundos (1 hora) | 86.400 segundos (1 dia) | 3.600 segundos (1 hora) |
Valor máx. permitido | 31.622.400 segundos (1 ano) | 31.622.400 segundos (1 ano) | 31.622.400 segundos (1 ano) |
Observações | Precisa ser menor ou igual ao TTL máx.--default-ttl=0 força a resposta a ser revalidada na origem |
Precisa ser menor ou igual ao TTL máx. |
Antes de começar
Leia sobre os modos de cache.
Verifique se o Cloud CDN está ativado. Para instruções, consulte Uso do Cloud CDN.
Se necessário, atualize para a versão mais recente da CLI do Google Cloud:
gcloud components update
Definir o TTL padrão
Se quiser melhorar as taxas de ocorrência em cache de um conteúdo que não muda com frequência, é possível substituir o TTL padrão para que o Cloud CDN revalide o conteúdo na origem com menos frequência. Os objetos acessados com pouca frequência podem ser removidos do cache antes do TTL definido.
Quando o modo de cache é FORCE_CACHE_ALL
, o TTL padrão substitui o TTL definido
em todas as respostas, incluindo aquelas que têm um TTL definido por cabeçalhos de origem. Nesse modo, o
TTL padrão fica visível para os clientes, porque o Cloud CDN define
os atributos public
e max-age
das respostas disponibilizadas aos clientes.
No modo CACHE_ALL_STATIC
, o TTL padrão se aplica ao conteúdo em cache disponibilizado
por uma origem para respostas que não têm um TTL válido (cabeçalho max-age
, s-maxage
ou Expires
). No modo CACHE_ALL_STATIC
, o TTL padrão não modifica o cabeçalho Cache-Control
exibido aos clientes. Para modificar o cabeçalho Cache-Control
no modo CACHE_ALL_STATIC
, defina o TTL do cliente.
Quando você define o modo de cache para usar cabeçalhos de origem (USE_ORIGIN_HEADERS
), o
valor TTL padrão não se aplica e não pode ser configurado porque o Cloud CDN
usa as diretivas de origem max-age
ou s-maxage
ou o cabeçalho
Expires
.
Console
- No console do Google Cloud , acesse a página Balanceamento de carga.
- Clique no nome do balanceador de carga de aplicativo externo.
- Clique em Editar .
- Em Configuração de back-end, selecione um back-end e clique em Editar .
- Verifique se a opção Ativar o Cloud CDN está selecionada.
- Verifique se o modo de cache é Armazenar conteúdo estático em cache (recomendado) ou Forçar cache em todo o conteúdo. A substituição dos valores de TTL não é compatível quando o modo de cache é Usar configurações de origem com base em cabeçalhos Cache-Control.
- Em Time to live (TTL) padrão, selecione um valor.
- 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 --default-ttl
.
Para buckets de back-end, use o comando gcloud compute backend-buckets
create
ou gcloud compute backend-buckets
update
com a sinalização --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
Substitua DEFAULT_TTL
por um valor de até 31.622.400 segundos (1
ano).
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": { "defaultTtl": DEFAULT_TTL }
Substitua DEFAULT_TTL
por um valor de até 31.622.400 segundos (1
ano).
Definir o TTL máximo
O TTL máximo (máx.) especifica o TTL máximo permitido no Cloud CDN para o conteúdo armazenado em cache disponibilizado por uma origem.
O TTL de uma resposta será limitado pelo TTL máx. se uma das seguintes condições for verdadeira:
- A resposta tenta definir um
max-age
ous-maxage
superior ao valor máx. de TTL. - A resposta tem um cabeçalho
Expires
com mais decdnPolicy.maxTtl
segundos no futuro.
A configuração de TTL máx. não altera o valor max-age
enviado ao cliente. Para
mais informações, consulte Substituição do TTL máximo do cliente. A configuração de
TTL máx. só afeta o tempo em que o Cloud CDN tenta armazenar em cache
o conteúdo.
Essa configuração só é usada quando o modo de cache é CACHE_ALL_STATIC
. O
valor máximo permitido é de 31.622.400 segundos (1 ano). Os objetos acessados com pouca
frequência podem ser removidos do cache antes do TTL definido.
Com FORCE_CACHE_ALL
, o TTL sempre é definido como o TTL
padrão. Não é possível definir um TTL máx.
Console
- No console do Google Cloud , acesse a página Balanceamento de carga.
- Clique no nome do balanceador de carga de aplicativo externo.
- Clique em Editar .
- Em Configuração de back-end, selecione um back-end e clique em Editar .
- Verifique se a opção Ativar o Cloud CDN está selecionada.
- Verifique se o modo de cache é Armazenar conteúdo estático em cache (recomendado).
- Em Time to live (TTL) máximo, selecione um valor.
- 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 --max-ttl
.
Para buckets de back-end, use o comando gcloud compute backend-buckets
create
ou gcloud compute backend-buckets
update
com a sinalização --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
Substitua MAX_TTL
por um valor de até 31.622.400 segundos (1 ano).
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": { "maxTtl": MAX_TTL }
Substitua MAX_TTL
por um valor de até 31.622.400 segundos (1 ano).
Substituir o TTL do cliente
Para todos os modos de cache, o Cloud CDN transmite
cabeçalhos Cache-Control
para o cliente.
O TTL do cliente permite que você defina um TTL máximo para o que é enviado a navegadores ou clientes, para que os clientes revalidem o conteúdo com o Cloud CDN com mais frequência, sem exigir revalidação na origem. Dessa forma, o conteúdo pode ser invalidado no Cloud CDN quando necessário e os navegadores podem descobrir que o conteúdo está invalidado assim que o TTL do cliente expira.
No modo FORCE_CACHE_ALL
, o Cloud CDN normalmente transmite o mesmo max-age
ao cliente que é usado internamente para o armazenamento em cache do proxy. No entanto, se o TTL de um
cliente for especificado e for um valor menor, o TTL do cliente será transmitido ao cliente
na diretiva max-age
. Da mesma forma, no modo CACHE_ALL_STATIC
, o
TTL do cliente atua como um limite para qualquer max-age
especificada pelo servidor de
origem para que a max-age
enviada ao navegador ou ao cliente não seja maior que o
TTL configurado do cliente. Se nenhuma max-age
for especificada pela origem, o
menor valor de TTL do Cloud CDN e do cliente é usado como a
max-age
enviada ao navegador ou cliente.
Se um cabeçalho Expires
estiver presente na resposta de origem, ele será removido e
substituído por uma diretiva Cache-Control: max-age
com o TTL adequado.
Para respostas de erro, se nenhum TTL de armazenamento em cache negativo for definido, o cabeçalho Cache-Control
também será removido.
Como o TTL do cliente é tratado como um valor máximo para o que é enviado a
navegadores ou clientes, não é possível usá-lo para aumentar o valor max-age
que
seria enviado. Se o valor de max-age
enviado aos navegadores e clientes
for menor que o previsto, aumente o valor da diretiva max-age
na
resposta retornada pela origem ou ajuste adequadamente as configurações do TTL padrão
ou do armazenamento em cache negativo.
Normalmente, uma configuração de TTL do cliente de cerca de um dia é um bom limite superior prático. Uma configuração de um dia significa que os navegadores fazem check-in com pelo menos essa frequência e podem aprender mais sobre invalidações de cache que podem ter ocorrido no Cloud CDN. É possível definir o TTL do cliente muito mais alto (até um ano) como uma maneira de permitir que a origem e os TTLs configurados controlem totalmente o que é enviado ao cliente. Isso pode ser útil se você não quiser que o navegador realize validações mais frequentes no Cloud CDN.
Console
- No console do Google Cloud , acesse a página Balanceamento de carga.
- Clique no nome do balanceador de carga de aplicativo externo.
- Clique em Editar .
- Em Configuração de back-end, selecione um back-end e clique em Editar .
- Verifique se a opção Ativar o Cloud CDN está selecionada.
- Verifique se o modo de cache é Armazenar conteúdo estático em cache (recomendado) ou Forçar cache em todo o conteúdo. A substituição dos valores de TTL não é compatível quando o modo de cache é Usar configurações de origem com base em cabeçalhos Cache-Control.
- Em Time to live (TTL) do cliente, selecione um valor de até 1 ano.
- 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 --client-ttl
.
Para buckets de back-end, use o comando gcloud compute backend-buckets
create
ou gcloud compute backend-buckets
update
com a sinalização --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
Substitua CLIENT_TTL
por um valor de até 31.622.400 segundos (1 ano).
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": { "clientTtl": CLIENT_TTL }
Substitua CLIENT_TTL
por um valor de até 31.622.400 segundos (1 ano).
A seguir
- Para saber os motivos para a disponibilização de conteúdo desatualizado e expirado, consulte Disponibilizar conteúdo desatualizado.