Como ajustar configurações de cache

Utilize as capacidades de Edge Cache para configurar as políticas de cache da sua edge application, incluindo valores de expiração do cache da edge ou do navegador, segmentação de cache de arquivos maiores e definição de cache key com base em query strings ou cookies.


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.

  1. Acesse o Azion Console.
  2. No canto superior esquerdo da página, abra o Products menu, representado por três linhas horizontais, e selecione Edge Application.
  3. Clique na edge application que você deseja configurar.
  4. Ative o módulo Application Accelerator para desbloquear configurações avançadas de cache key.
  5. Navegue até a aba Configurações de Cache.
  6. Clique no botão Adicionar Configurações de Cache.
  7. Dê um nome para sua configuração de cache.

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.

  1. Em Browser Cache Settings, selecione Override Cache Settings para determinar um valor de TTL personalizado.
  2. Adicione o TTL em segundos no campo Maximum TTL (seconds). Por exemplo: 432000 = 5 dias.

Em CDN Cache Settings*, você pode determinar se o edge deve obedecer aos valores enviados nos cabeçalhos Cache-Control e Expires.

Você pode optar por manter Honor Origin Cache Headers 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 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 Default TTL (seconds). Se a sua aplicação estiver enviando esses valores, para substituí-los:

  1. Em CDN Cache Settings, selecione Override Cache Settings para determinar um valor TTL personalizado.
  2. Adicione o TTL em segundos no campo Maximum TTL (seconds). Por exemplo: 864000 = 10 dias.

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 fatiados em pedaços e armazenados em cache sob demanda.

  1. Em Large File Optimization, habilite o switch.
  2. A camada Edge Cache já está selecionada por padrão. Se você tiver o módulo Tiered Cache ativado, você também pode habilitar o Large File Optimization para a camada de tiered cache.

Você pode personalizar como seu conteúdo será armazenado em cache no edge através de cache keys. Você pode escolher segmentar cache keys com base em query strings ou cookies.

Para determinar a variação de conteúdo no cache:

  1. Em Cache by Query Strungs, selecione Content varies by some Query String fields (Whitelist).
  2. Em Query String Fields, adicione o valor cidade.

Quando uma requisição é feita para uma URL de aplicação xxxxxxxxxx.map.azionedge.net/pagina?cidade=12345, a cache key para esta URL será diferente das cache keys feitas para xxxxxxxxxx.map.azionedge.net/pagina e quaisquer outras queries 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:

  1. Ative Query String Sort.

Você também pode personalizar quais tipos de requisições podem ser armazenadas em cache:

  1. Ative Enable caching for POST para armazenar requisições POST em cache.
  2. Ative Enable caching for OPTIONS para armazenar requisições OPTIONS em cache.

Em seguida, você pode determinar a variação de conteúdo com base em cookies:

  1. Em Cache by Cookies, selecione Content varies by some Cookies (Whitelist).
  2. Em Cookie Names, adicione o valor nome_do_cookie.

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.

Se você criou um device group, você pode segmentar cache keys com base nos device groups que você criou. Para fazer isso:

  1. Selecione Content varies by some Device Groups (Whitelist).
  2. Clique no botão + para adicionar um device group.
  3. Selecione o device group da lista.
  4. Repita os passos 15 e 16 para cada device group para o qual você deseja especificar uma cache key diferente.

Depois de terminar de configurar sua configuração de cache:

  1. Clique no botão Save.

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.

  1. Navegue até a aba Rules Engine.
  2. Clique no botão Add Rule e selecione Request Phase.
  3. Na seção Criteria, selecione a variável ${uri}.
  1. Como operador de comparação, selecione is equal.
  2. Como argumento, adicione /cache.
  3. Na seção Behaviors, selecione Set Cache Policy na lista de comportamentos.
  4. Selecione a nova configuração decache que você criou.
  5. Clique no botão Save.
  6. 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.


  1. 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:
Terminal window
curl --location --request PATCH 'https://api.azionapi.net/edge_applications/<edge_application_id>' \
--header 'Accept: application/json; version=3' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token [TOKEN VALUE]' \
--data '{
"application_acceleration": true
}'
  1. Você receberá uma resposta com o valor atualizado.
  2. Se você quiser configurar a entrega adaptativa para um dos seus device groups, execute a seguinte requisição GET antes:
Terminal window
curl --location 'https://api.azionapi.net/edge_applications/<edge_application_id>/device_groups' \
--header 'Accept: application/json; version=3' \
--header 'Authorization: Token [TOKEN VALUE]'
  1. Copie o ID recebido na resposta.
  2. 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:
Terminal window
curl --location 'https://api.azionapi.net/edge_applications/<edge_application_id>/cache_settings' \
--header 'Accept: application/json; version=3' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token [TOKEN VALUE]' \
--data '{
"name": "/cache O60 O13660 Wcity Wcookie_name Wdg POST OPTIONS SLICE",
"browser_cache_settings": "override",
"browser_cache_settings_maximum_ttl": 60,
"cdn_cache_settings": "override",
"cdn_cache_settings_maximum_ttl": 13660,
"cache_by_query_string": "whitelist",
"query_string_fields": [
"city"
],
"adaptive_delivery_action": "whitelist",
"device_group": [
<device_group_id>
],
"enable_query_string_sort": false,
"enable_caching_for_options": true,
"cache_by_cookies": "whitelist",
"cookie_names": [
"cookie_name"
],
"enable_caching_for_post": true,
"l2_caching_enabled": false,
"is_slice_configuration_enabled": true,
"is_slice_edge_caching_enabled": true,
"is_slice_l2_caching_enabled": false
}'
ChaveDescrição
nameDefine a string em valor como um nome da configuração de cache.
browser_cache_settingsDefine a string em valor como a política selecionada para navegadores em relação aos valores TTL enviados nos cabeçalhos Cache-Control ou Expires. Quando "honor", as diretivas de TTL de cache recebidas da origem são implementadas. Quando "override", permite que você determine o TTL de cache do navegador através de browser_cache_settings_maximum_ttl.
browser_cache_settings_maximum_ttlDetermina o TTL para cache do navegador em segundos.
cdn_cache_settingsDefine a string em valor como a política selecionada para o edge em relação aos valores TTL enviados nos cabeçalhos Cache-Control ou Expires. Quando "honor", as diretivas de TTL de cache recebidas da origem são implementadas. Quando "override", permite que você determine o TTL de cache do edge através de cdn_cache_settings_maximum_ttl.
cdn_cache_settings_maximum_ttlDetermina o TTL para cache do edge em segundos. Se nenhum cabeçalho for recebido da origem, implementa um valor TTL padrão.
cache_by_query_stringDefine se o cache deve ser segmentado em cache keys com base em query strings. Para todas as opções disponíveis, consulte a documentação da API.
query_string_fieldsDefine as strings listadas como as chaves de consultas que devem ser mantidas como a mesma cache key ou segmentadas em cache keys separadas.
adaptive_delivery_actionDefine se o cache deve ser segmentado em cache keys com base em device groups.
device_groupDefine os IDs listados como os device groups que devem ser mantidos como a mesma cache key ou segmentados em cache keys separadas.
enable_query_string_sortQuando ativado, uma única cache key é gerada para URLs com as mesmas query strings, independentemente da ordem em que são agrupadas.
enable_caching_for_optionsHabilita o cache de requisições OPTIONS.
cache_by_cookiesDefine se o cache deve ser segmentado em cache keys com base em cookies. Para todas as opções disponíveis, consulte a documentação da API.
cookie_namesDefine as strings listadas como os nomes dos cookies que devem ser mantidos como a mesma cache key ou segmentados em cache keys separadas.
enable_caching_for_postHabilita o cache de requisições POST.
l2_caching_enabledHabilita o cache para a camada tiered cache. Você deve ter o módulo Tiered Cache ativo para habilitar essa configuração.
is_slice_configuration_enabledHabilita o recurso de Large File Optimization.
is_slice_edge_caching_enabledHabilita Large File Optimization para o edge. Se is_slice_configuration_enabled estiver definido como true, essa propriedade também deve ser definida como true.
is_slice_l2_caching_enabledHabilita Large File Optimization para a camada tiered cache. Você deve ter o módulo Tiered Cache ativo para habilitar essa configuração.
  1. Você receberá uma resposta semelhante a esta:
{
"results": {
"id": <cache_settings_id>,
"name": "/cache O60 O13660 Wcity Wcookie_name Wdg POST OPTIONS SLICE",
"browser_cache_settings": "override",
"browser_cache_settings_maximum_ttl": 60,
"cdn_cache_settings": "override",
"cdn_cache_settings_maximum_ttl": 13660,
"cache_by_query_string": "whitelist",
"query_string_fields": [
"city"
],
"enable_query_string_sort": true,
"cache_by_cookies": "whitelist",
"cookie_names": [
"cookie_name"
],
"adaptive_delivery_action": "whitelist",
"device_group": [
<device_group_id>
],
"enable_caching_for_post": true,
"l2_caching_enabled": false,
"is_slice_configuration_enabled": true,
"is_slice_edge_caching_enabled": true,
"is_slice_l2_caching_enabled": false,
"slice_configuration_range": 1024,
"enable_caching_for_options": true,
"enable_stale_cache": false,
"l2_region": null
}
}
  1. 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:
Terminal window
curl --location 'https://api.azionapi.net/edge_applications/<edge_application_id>/rules_engine/request/rules' \
--header 'Accept: application/json; version=3' \
--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",
"input_value": "/cache"
}
]
]
}'
  1. Você receberá uma resposta com os dados atualizados.
  2. 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.


Contribuidores