Nesta página, descrevemos 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 seu conteúdo em cache antes de revalidar.
As configurações de TTL estão resumidas na tabela a seguir.
TTL padrão | TTL máx. | TTL do cliente | |
---|---|---|---|
Motivo para configuração | Melhora as taxas de ocorrência em cache de conteúdo que não muda com frequência | Força o Cloud CDN a revalidar conteúdo com mais frequência do que o especificado por um cabeçalho de origem | Força 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áximo 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áximo--default-ttl=0 força a resposta a ser revalidada na origem |
Precisa ser menor ou igual ao TTL máximo |
Antes de começar
Leia sobre os modos de cache.
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 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 pelos 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 exibidas aos clientes.
No modo CACHE_ALL_STATIC
, o TTL padrão se aplica ao conteúdo em cache exibido por uma origem para respostas que não têm um TTL válido (cabeçalhos 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 seu 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 baseadas em cabeçalhos de controle de cache.
- Em Tempo de vida padrão, selecione um valor.
- Clique em Save.
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áximo) especifica o TTL máximo permitido dentro do Cloud CDN para o conteúdo armazenado em cache exibido por uma origem.
O TTL de uma resposta será limitado pelo TTL máximo. se uma das seguintes condições for verdadeira:
- A resposta tenta definir um
max-age
ous-maxage
superior ao valor máximo de TTL. - A resposta tem um cabeçalho
Expires
com mais decdnPolicy.maxTtl
segundos no futuro.
A configuração de TTL máximo não altera o valor max-age
enviado ao cliente. Para
mais informações, consulte Como substituir o TTL máximo do cliente. A configuração de
TTL máximo afeta apenas o tempo que o Cloud CDN tenta armazenar em cache
o conteúdo.
Essa configuração é usada apenas quando o modo 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áximo.
Console
- No Console do Google Cloud, acesse a página Balanceamento de carga.
- Clique no nome do seu 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 Tempo máximo para viver, selecione um valor.
- Clique em Save.
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 ficar inválido no Cloud CDN quando necessário, e os navegadores podem descobrir que o conteúdo é 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 uma base para qualquer max-age
especificado 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 é 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,
de outra forma, seria enviado. Se o valor de max-age
enviado aos navegadores e clientes
for menor que o pretendido, aumente o valor da diretiva max-age
na
resposta retornada pela origem ou ajuste as configurações do TTL padrão
ou 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 saber 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 a origem e o TTL configurado para controlar 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 seu 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 baseadas em cabeçalhos de controle de cache.
- Em Tempo de vida do cliente, selecione um valor de até um ano.
- Clique em Save.
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 exibir conteúdo desatualizado e expirado, consulte Exibir conteúdo desatualizado.