Como ajustar as configurações de cache
Utilize as capacidades do Edge Cache para configurar as políticas de cache da sua edge application, incluindo valores de expiração no edge ou no navegador, otimização de arquivos grandes para dividir conteúdos em partes menores e segmentação de cache key com base em métodos HTTP, query strings, cookies ou grupos de dispositivos.
Quando você cria uma edge application pela primeira vez, uma variável de configuração de cache será criada e ativada por padrão. Este guia mostrará como criar e ativar uma nova instância de configuração de cache.
- Acesse o Azion Console > Edge Application.
- Clique na edge application que você deseja configurar.
- Ative o módulo Application Accelerator para desbloquear configurações avançadas de cache key.
- Clique no botão Save.
- Navegue até a aba Cache Settings.
- Clique no botão + Cache Setting.
- Dê um nome para sua configuração de cache.
Cache Expiration Policies
Você pode personalizar o Time To Live (TTL) do cache nos navegadores e no edge. Esses dados são enviados em requisições e respostas através dos cabeçalhos HTTP Cache-Control
e Expires
.
- Em Browser Cache, selecione Override cache settings para determinar um valor de TTL personalizado.
- Adicione o TTL em segundos no campo Max Age (seconds). Por exemplo:
432000
= 5 dias.
Em Edge Cache, você pode determinar se o edge deve obedecer aos valores enviados nos cabeçalhos Cache-Control
e Expires
.
Você pode optar por manter Honor cache policies selecionado para respeitar os valores TTL enviados nos cabeçalhos pela origem ou pela própria aplicação.
Se a sua aplicação não estiver enviando cabeçalhos Cache-Control
e Expires
ou se os valores não estiverem configurados corretamente, você pode determinar um TTL máximo padrão para o cache ser mantido no edge no campo Max Age (seconds). Se a sua aplicação estiver enviando esses valores, para substituí-los:
- Em Edge Cache, selecione Override cache settings para determinar um valor de TTL personalizado.
- Adicione o TTL em segundos no campo Max Age (seconds). Por exemplo:
864000
= 10 dias.
Stale cache
A Azion oferece a capacidade de servir conteúdo obsoleto do cache quando o servidor de origem estiver inativo ou enquanto o cache estiver sendo renovado. A funcionalidade Stale Cache está habilitada por padrão, permitindo que sua aplicação continue servindo o conteúdo em um cache mais recente durante esses eventos.
Otimização de arquivos grandes
Em vez de baixar um arquivo de conteúdo grande e correr o risco de timeouts ou terminações de conexão, os arquivos podem ser divididos em partes menores e armazenados em cache sob demanda.
- Em Large file optimization, habilite o switch para ativar.
- A camada Edge Cache já está selecionada por padrão. Se você tiver o módulo Tiered Cache ativado, você também pode habilitar este recurso para a camada de tiered cache.
Application Accelerator
Esta seção permite que você personalize como o cache varia com base em métodos HTTP, campos de query string, cookies e grupos de dispositivos por meio de cache keys. Você pode escolher segmentar as cache keys usando esses atributos para controlar como os objetos são armazenados e servidos a partir do cache.
Para determinar a variação de conteúdo no cache:
- Em Cache vary by Query String, selecione Content varies by some query string fields (Allowlist).
- Em Query string fields, adicione o valor
cidade
.
- Este campo diferencia letras maiúsculas de minúsculas e as trata de forma distinta ao armazenar objetos no cache.
Quando uma requisição é feita para uma URL de aplicação xxxxxxxxxx.map.azionedge.net/pagina?city=12345
, a cache key para essa URL será diferente das cache keys feitas para xxxxxxxxxx.map.azionedge.net/pagina
e quaisquer outras query strings adicionadas à URL.
Para desconsiderar a ordem dos dados enviados na query string e manter objetos com os mesmos valores de query string como uma única cache key:
- Ative Query String Sort.
Você também pode personalizar quais tipos de requisições podem ser armazenadas em cache:
-
Ative Enable caching for POST para armazenar requisições
POST
em cache. -
Ative Enable caching for OPTIONS para armazenar requisições
OPTIONS
em cache. -
Em Cache vary by Cookies, selecione Content varies by some cookies (Allowlist).
-
Em Cookie Names, adicione o valor
nome_do_cookie
.
- Este campo diferencia letras maiúsculas de minúsculas e as trata de forma distinta ao armazenar objetos no cache.
Quando uma requisição é feita a uma aplicação e a resposta da origem envia um cabeçalho Set-Cookie
, os objetos no cabeçalho de requisição Cookie
que contêm o nome nome_do_cookie
, independentemente do valor, serão considerados como um objeto diferente no cache de outras requisições.
- Em Cache vary by Devices, selecione Content varies by some device groups (Allowlist).
- Clique no botão + Add Device Group para adicionar um device group e selecione‑o da lista.
- Repita o passo anterior para cada device group para o qual você deseja especificar uma cache key diferente.
Depois de terminar de configurar a sua cache setting:
- Clique no botão Save.
Activating your cache setting
A página de configurações de cache agora lista a nova instância criada. No entanto, essa nova configuração de cache não está ativa em sua aplicação. Você precisa definir o que acionará a implementação das políticas de cache em sua aplicação. Para isso, você pode usar o Rules Engine de sua edge application.
As instruções abaixo ajudarão você a criar uma regra na qual qualquer requisição de seus usuários para xxxxxxxxxx.map.azionedge.net/cache
aplicará a configuração de cache que você criou.
- Navegue até a aba Rules Engine.
- Clique no botão + Rule.
- Dê um nome para sua regra.
- Selecione Request Phase.
- Na seção Criteria, selecione a variável
${uri}
.
- Como operador de comparação, selecione is equal.
- Como argumento, adicione
/cache
. - Na seção Behaviors, selecione Set Cache Policy na lista de comportamentos.
- Selecione a nova cache setting que você criou.
- Clique no botão Save.
- Aguarde alguns minutos para que as alterações se propaguem.
Para analisar como seu conteúdo está sendo armazenado em cache, você pode verificar os indicadores de cache da aplicação usando o Modheader para Google Chrome.
- Execute a seguinte requisição
PATCH
em seu terminal, substituindo[TOKEN VALUE]
pelo seu personal token e a variável<edge_application_id>
pelo ID da sua edge application para ativar o módulo Application Accelerator:
curl --location --request PATCH 'https://api.azionapi.net/v4/edge_application/applications/<application_id>' \--header 'Accept: application/json;' \--header 'Content-Type: application/json' \--header 'Authorization: Token [TOKEN VALUE]' \--data '{ "application_acceleration": true}'
- Você receberá uma resposta com o valor atualizado.
- Se você quiser configurar a entrega adaptativa para um dos seus device groups, execute a seguinte requisição
GET
antes:
curl --location 'https://api.azionapi.net/v4/edge_application/applications/<application_id>/device_groups' \--header 'Accept: application/json;' \--header 'Authorization: Token [TOKEN VALUE]'
- Copie o ID recebido na resposta.
- Execute a seguinte requisição
POST
em seu terminal, substituindo[TOKEN VALUE]
pelo seu personal token, a variável<edge_application_id>
pelo ID da sua edge application, e a variável<device_group_id>
pelo ID do device group da resposta anterior, se necessário:
curl --location 'https://api.azionapi.net/v4/edge_application/applications/<application_id>/cache_settings' \--header 'Accept: application/json;' \--header 'Content-Type: application/json' \--header 'Authorization: Token [TOKEN VALUE]' \--data '{ "name": "/cache O60 O13660 Wcity Wcookie_name Wdg POST OPTIONS SLICE", "browser_cache": { "behavior": "override", "max_age": 60 }, "modules": { "edge_cache": { "behavior": "override", "max_age": 13660, "stale_cache": { "enabled": false }, "large_file_cache": { "enabled": true, "offset": 1024 } }, "application_accelerator": { "cache_vary_by_method": [ "post", "options" ], "cache_vary_by_querystring": { "behavior": "whitelist", "fields": [ "city" ], "sort_enabled": false }, "cache_vary_by_cookies": { "behavior": "whitelist", "cookie_names": [ "cookie_name" ] }, "cache_vary_by_devices": { "behavior": "whitelist", "device_group": [ <device_group_id> ] } } }}'
Chave | Descrição |
---|---|
name | Define uma string como o nome da configuração de cache. |
browser_cache.behavior | Define o comportamento de cache para navegadores. "honor" respeita os cabeçalhos de TTL enviados pela origem; "override" permite definir um valor de TTL personalizado usando max_age . |
browser_cache.max_age | TTL máximo (em segundos) para cache do navegador quando behavior está configurado como "override" . |
modules.edge_cache.behavior | Define o comportamento de cache no edge. "honor" usa os cabeçalhos de TTL da origem; "override" utiliza o campo max_age em vez disso. |
modules.edge_cache.max_age | TTL (em segundos) para o cache do edge ao substituir os cabeçalhos de TTL da origem. |
modules.edge_cache.stale_cache.enabled | Habilita o stale cache para servir conteúdo expirado temporariamente enquanto busca conteúdo atualizado na origem. |
modules.edge_cache.large_file_cache.enabled | Habilita a Otimização de arquivos grandes ao armazenar arquivos grandes em fragmentos. |
modules.edge_cache.large_file_cache.offset | Define o tamanho do fragmento (em kilobytes) para o cache de arquivos grandes. O valor padrão é 1024 . |
modules.tiered_cache.topology | Define a topologia usada no tiered cache: "near-edge" ou "near-origin" (quando disponível). |
modules.application_accelerator.cache_vary_by_method | Lista de métodos HTTP (por exemplo, ["post", "options"] ) que devem variar a cache key. |
modules.application_accelerator.cache_vary_by_querystring.behavior | Define como as query strings afetam a variação do cache. As opções são "ignore" , "whitelist" ou "blacklist" . |
modules.application_accelerator.cache_vary_by_querystring.fields | Lista de campos de query string permitidos ou bloqueados ao variar o cache, dependendo do comportamento definido. |
modules.application_accelerator.cache_vary_by_querystring.sort_enabled | Habilita a ordenação dos parâmetros de query string antes de calcular as cache keys. |
modules.application_accelerator.cache_vary_by_cookies.behavior | Define como os cookies afetam a variação do cache. As opções são "ignore" , "whitelist" ou "blacklist" . |
modules.application_accelerator.cache_vary_by_cookies.cookie_names | Lista dos nomes de cookies usados para variar o cache. |
modules.application_accelerator.cache_vary_by_devices.behavior | Define como os grupos de dispositivos afetam a variação do cache. As opções são "ignore" , "whitelist" ou "blacklist" . |
modules.application_accelerator.cache_vary_by_devices.device_group | Lista dos IDs de grupos de dispositivos usados para variar o conteúdo em cache de acordo com o dispositivo do usuário. |
- Você receberá uma resposta semelhante a esta:
{ "status": "pending", "data": { "id": <cache_settings_id>, "name": "/cache O60 O13660 Wcity Wcookie_name Wdg POST OPTIONS SLICE", "browser_cache": { "behavior": "override", "max_age": 60 }, "modules": { "edge_cache": { "behavior": "override", "max_age": 13660, "stale_cache": { "enabled": false }, "large_file_cache": { "enabled": true, "offset": 1024 } }, "application_accelerator": { "cache_vary_by_method": [ "post", "options" ], "cache_vary_by_querystring": { "behavior": "whitelist", "fields": ["city" ], "sort_enabled": false }, "cache_vary_by_cookies": { "behavior": "whitelist", "cookie_names": [ "cookie_name" ] }, "cache_vary_by_devices": { "behavior": "whitelist", "device_group": [ <device_group_id> ] } } } }}
- Execute a seguinte requisição
POST
em seu terminal, substituindo[TOKEN VALUE]
pelo seu personal token, a variável<edge_application_id>
pelo ID da sua edge application, e a variável<cache_setting_id>
pelo ID da configuração de cache recebido na resposta:
curl --location 'https://api.azionapi.net/v4/edge_application/applications/<application_id>/request_rules' \--header 'Accept: application/json;' \--header 'Content-Type: application/json' \--header 'Authorization: Token [TOKEN VALUE]' \--data '{ "name": "Set cache setting /cache", "behaviors": [ { "name": "set_cache_policy", "target": "<cache_setting_id>" } ], "criteria": [ [ { "variable": "${uri}", "operator": "is_equal", "conditional": "if", "argument": "/cache" } ] ]}'
- Você receberá uma resposta com os dados atualizados.
- Aguarde alguns minutos para que as alterações se propaguem.
Para verificar como seu conteúdo está sendo armazenado em cache, você pode verificar os indicadores de cache da aplicação usando o Modheader para Google Chrome.