Quando um nó do CDN DCDN busca um recurso no servidor de origem, o servidor retorna um código de status de resposta. Você pode configurar uma duração de cache para códigos de status no Alibaba Cloud CDN DCDN. Se um cliente solicitar o mesmo recurso novamente, o CDN DCDN retornará o código de status diretamente sem acionar uma nova busca na origem, reduzindo a carga no servidor de origem. Uma nova busca na origem ocorre apenas quando a duração de cache configurada expira.
Cenários
O TTL de código de status aplica-se principalmente a cenários em que o servidor de origem retorna códigos anormais. Ele define a ação de cache que os nós da CDN executam para esses códigos.
Em condições normais, quando um nó da CDN busca com sucesso o recurso solicitado no servidor de origem (ou seja, quando o servidor retorna um código de status 2xx), o recurso é armazenado em cache conforme descrito em Configure CDN cache expiration. Caso o servidor de origem não consiga responder rapidamente a todos os códigos de status (por exemplo, códigos diferentes de 2xx) e você não deseje que todas as solicitações sejam processadas pela origem, configure o TTL de código de status. Assim, os nós da CDN retornam os códigos diretamente, aliviando a carga do servidor de origem.
Cenário típico
O Arquivo A foi excluído do servidor de origem, mas os clientes continuam a solicitá-lo. Como os nós da CDN não armazenam o Arquivo A em cache, todas as solicitações são encaminhadas ao servidor de origem, que retorna um código de status 4xx. Isso aumenta significativamente a carga no servidor de origem. Se o cache de códigos de status 4xx estiver configurado nos nós da CDN, o nó armazenará o código 4xx em cache após a primeira busca na origem para o Arquivo A. Dentro da duração de cache configurada, quando um cliente solicitar o Arquivo A novamente, o nó da CDN retornará o código de status 4xx diretamente, sem realizar uma nova busca na origem.
Regras de cache para códigos de status anormais
-
Para os códigos de status 204, 301, 305, 404, 405, 414, 424, 429, 500, 501, 502, 503 e 504, as regras de cache são as seguintes:
Se o servidor de origem retornar o cabeçalho de resposta
set-cookie, o CDN DCDN não armazena a resposta em cache.Caso o servidor de origem não retorne o cabeçalho de resposta Set-Cookie, a resposta será armazenada em cache com base no TTL de código de status configurado no console do CDN DCDN. Se houver várias regras configuradas, consulte Prioridade de múltiplas regras para entender como a regra efetiva é determinada.
Quando o servidor de origem não retorna o cabeçalho de resposta Set-Cookie e nenhum TTL de código de status está configurado no console do CDN DCDN, a resposta segue o cache definido pelos cabeçalhos de resposta Pragma, Cache-Control ou Expires configurados na origem.
Se o servidor de origem não retornar os cabeçalhos de resposta Set-Cookie, Pragma, Cache-Control ou Expires, e não houver TTL de código de status configurado no console do CDN DCDN, a resposta será armazenada em cache por 1 segundo por padrão.
-
Para os códigos de status 302, 307 e 403, aplicam-se as seguintes regras de cache:
Se o servidor de origem retornar o cabeçalho de resposta
set-cookie, o CDN DCDN não armazena a resposta em cache.Caso o servidor de origem não retorne o cabeçalho de resposta Set-Cookie, a resposta será armazenada em cache com base no TTL de código de status configurado no console do CDN DCDN. Se houver várias regras configuradas, consulte Prioridade de múltiplas regras para entender como a regra efetiva é determinada.
Quando o servidor de origem não retorna o cabeçalho de resposta Set-Cookie e nenhum TTL de código de status está configurado no console do CDN DCDN, a resposta segue o cache definido pelos cabeçalhos de resposta Pragma, Cache-Control ou Expires configurados na origem.
Se o servidor de origem não retornar os cabeçalhos de resposta Set-Cookie, Pragma, Cache-Control ou Expires, e não houver TTL de código de status configurado no console do CDN DCDN, a resposta não será armazenada em cache.
Para o código de status 304, o CDN DCDN não armazena a resposta em cache, e não é possível configurar a duração de cache de nenhuma forma.
-
Para outros códigos de status anormais, como o código 400, as regras de cache são as seguintes:
Se o servidor de origem retornar o cabeçalho de resposta
set-cookie, o CDN DCDN não armazena a resposta em cache.Caso o servidor de origem não retorne o cabeçalho de resposta Set-Cookie, a resposta será armazenada em cache com base no TTL de código de status configurado no console do CDN DCDN. Se houver várias regras configuradas, consulte Prioridade de múltiplas regras para entender como a regra efetiva é determinada.
Nos demais cenários, a resposta não é armazenada em cache.
-
Para solicitações que usam busca na origem por intervalo (range), se um nó do CDN DCDN receber um código de status diferente de 206 do servidor de origem, o nó do CDN DCDN exclui os fragmentos armazenados em cache (um tempo limite de busca na origem não causa a exclusão de arquivos em cache).
Em uma busca na origem por intervalo, o servidor de origem divide um arquivo grande em vários fragmentos menores e os retorna aos nós do CDN DCDN. Por exemplo, suponha que um arquivo seja dividido em 10 fragmentos e um nó do CDN DCDN já tenha cinco fragmentos em cache. Quando o nó solicita o sexto fragmento e o servidor de origem retorna um código de status 5xx, todos os cinco fragmentos previamente armazenados em cache são excluídos.
Prioridade de múltiplas regras
Você pode configurar várias regras de cache de código de status. Se uma solicitação corresponder a várias regras simultaneamente, apenas uma entrará em vigor. A regra efetiva é determinada da seguinte forma:
-
Ordem de avaliação:
O tipo de regra é avaliado primeiro (extensão de arquivo > diretório) e, em seguida, o horário de criação da regra é avaliado (criada anteriormente > criada posteriormente).
-
Prioridade de regras de tipos diferentes: extensão de arquivo > diretório.
Por exemplo, se uma solicitação corresponder a duas regras ao mesmo tempo (com o código de status 404 configurado em ambas) e os tipos de regra forem File Extension e Directory, o tempo de expiração do código de status 404 será determinado pela regra do tipo File Extension. Para um exemplo específico, consulte Configuration examples.
-
Prioridade de regras do mesmo tipo: criada anteriormente > criada posteriormente (de cima para baixo na lista de regras).
Por exemplo, se uma solicitação corresponder a duas regras simultaneamente (com o código de status 404 configurado em ambas) e as regras forem do mesmo tipo (ambas do tipo File Extension ou ambas do tipo Directory), o tempo de expiração do código de status 404 será determinado pela regra criada primeiro. Para um exemplo específico, consulte Configuration examples.
Procedimento
Faça login no CDN console.
No painel de navegação à esquerda, clique em Domain Names.
Na página Domain Names, localize o nome de domínio desejado e clique em Manage na coluna Actions.
No painel de navegação do domínio, clique em Cache.
Clique na aba Status Code TTL.
-
Clique em Create Rule e configure o TTL de código de status.
Parâmetro
Descrição
Type
Dois tipos são suportados: Directory e File Extension. Selecione um tipo com base nos seus requisitos de negócio.
NotaPrioridade de regras de tipos diferentes: extensão de arquivo > diretório. Para mais informações, consulte Cache rules for abnormal status codes.
Object
Se você definir o tipo como Directory, observe os seguintes itens:
É possível adicionar apenas um diretório por vez.
Insira o caminho completo do diretório. O caminho deve começar com uma barra (/), por exemplo, /directory/aaa.
Se você definir o tipo como File Extension, observe os seguintes itens:
Insira uma ou mais extensões de arquivo. Separe múltiplas extensões com vírgulas (,), por exemplo,
jpg,txt.NotaSe as extensões de arquivo configuradas em registros diferentes forem exatamente iguais, diferindo apenas em maiúsculas e minúsculas, o registro criado posteriormente substituirá o registro criado anteriormente. Por exemplo, após criar uma regra jpg,txt, criar outra regra jpg,txt substituirá o registro anterior. Nesse caso, se precisar configurar uma regra em letras minúsculas, crie regras separadas para txt e jpg. As regras configuradas diferenciam maiúsculas de minúsculas rigorosamente quando entram em vigor.
Não é possível usar asteriscos (*) para corresponder a todos os tipos de arquivo.
Expire In
Os códigos de status a serem armazenados em cache e suas respectivas durações. A duração máxima é de três anos. Unidade: segundos. As regras de configuração são as seguintes:
Separe múltiplos códigos de status com vírgulas (,).
Para códigos de status 2xx e 3xx, apenas a configuração exata de códigos individuais é suportada. A configuração em lote aproximada não é suportada. Por exemplo, 201=10 é suportado, mas 2xx=12 não é.
Para códigos de status 4xx e 5xx, tanto a configuração exata de códigos individuais quanto a configuração em lote aproximada são suportadas. Por exemplo, tanto 401=10 quanto 4xx=12 são suportados.
Honor Origin TTL
Se você ativar esta opção e o servidor de origem retornar cabeçalhos de política de cache (incluindo Cache-Control e Pragma), a política de cache retornada pelo servidor de origem terá precedência.
Ignore Origin No-Cache Headers
Se você ativar esta opção, os nós do CDN ignorarão os seguintes cabeçalhos de política de cache retornados pelo servidor de origem. Todos esses cabeçalhos indicam que o conteúdo não deve ser armazenado em cache.
Cache-Control: no-store
Cache-Control: no-cache
Cache-Control: max-age=0
Pragma: no-cache
Clients Follow the CDN Cache Policy
Se você ativar esta opção, os nós do CDN retornarão a política de cache efetiva final aos clientes.
Force Content Revalidation
Este parâmetro entra em vigor apenas quando o tempo de expiração do cache é definido como 0. Os efeitos são os seguintes:
Desativado (padrão): Se o tempo de expiração do cache do CDN for definido como 0, os arquivos não serão armazenados em cache nos nós do CDN , e cada solicitação deverá acionar uma busca na origem para obter o conteúdo.
Ativado: Se o tempo de expiração do cache do CDN for definido como 0, os arquivos poderão ser armazenados em cache nos nós do CDN , e cada solicitação deverá acionar uma busca na origem para revalidar o conteúdo em cache.
-
Clique em OK para concluir a configuração.
Após configurar o TTL de código de status, você pode Modify ou Delete a configuração atual na lista Expire In.
Exemplos de configuração
-
Exemplo 1: regra do tipo diretório
Crie uma regra do tipo diretório, conforme mostrado no exemplo a seguir:
No diretório /directory/aaa, todos os códigos de status 4xx são armazenados em cache por 10 segundos, e o código de status 201 é armazenado por 15 segundos. Dentro dessas durações, os nós da CDN respondem às solicitações correspondentes diretamente. Após a expiração das durações, uma busca na origem é acionada.
-
Exemplo 2: regra do tipo extensão de arquivo
Crie uma regra do tipo extensão de arquivo, conforme mostrado no exemplo a seguir:
Para arquivos com extensão .jpg ou .txt, o código de status 403 é armazenado em cache por 10 segundos, e o código de status 404 é armazenado por 15 segundos. Dentro dessas durações, os nós da CDN respondem às solicitações correspondentes diretamente. Após a expiração das durações, uma busca na origem é acionada.
-
Exemplo 3: prioridade de regras de tipos diferentes
Uma regra do tipo diretório e uma regra do tipo extensão de arquivo são criadas, e diferentes tempos de expiração de código de status são configurados, conforme mostrado no exemplo a seguir:
Um usuário solicita
http://example.com/directory/aaa/test.jpg. O recurso não está em cache no nó da CDN, então o nó solicita o recurso ao servidor de origem, que retorna o código de status 404. A solicitação corresponde tanto à regra do tipo diretório quanto à regra do tipo extensão de arquivo. Como as regras de tipos diferentes entram em vigor na ordem de extensão de arquivo > diretório, a regra do tipo extensão de arquivo prevalece, e a duração real de cache para o código de status 404 é de 20 segundos. -
Exemplo 4: prioridade de múltiplas regras do mesmo tipo
A regra do tipo diretório 1 é criada primeiro e corresponde ao endereço /directory. Em seguida, a regra do tipo diretório 2 é criada e corresponde ao endereço /directory/aaa. Diferentes tempos de expiração de código de status são configurados, conforme mostrado no exemplo a seguir:
Um usuário solicita
http://example.com/directory/aaa/test.jpg. O recurso não está em cache no nó da CDN, então o nó solicita o recurso ao servidor de origem, que retorna o código de status 404. A solicitação corresponde a ambas as regras do tipo diretório. Como as regras do mesmo tipo entram em vigor na ordem de criada anteriormente > criada posteriormente, a regra do tipo diretório 1, que foi criada primeiro, prevalece, e a duração real de cache para o código de status 404 é de 15 segundos. -
Exemplo 5: resolver o problema de um redirecionamento 301 persistentemente em cache
Um nome de domínio acelerado pela CDN retorna continuamente um redirecionamento 301 para outro nome de domínio, mas o servidor de origem não retorna mais o redirecionamento quando acessado diretamente (ignorando a CDN). Nesse caso, adicione uma regra em Status Code TTL, defina o código de status como
301e a duração do cache como0(ou seja, 301=0), para que os nós da CDN não armazenem mais respostas 301 em cache. Após concluir a configuração, envie uma tarefa de atualização para a URL a fim de renovar o cache da CDN, limpar as respostas 301 armazenadas e fazer a regra entrar em vigor imediatamente. Em seguida, limpe o cache local do navegador e acesse a URL novamente para verificar o resultado.