Este tópico resume métodos de solução de problemas para cenários de cache do CDN organizados por sintoma: cache sem efeito e falhas de cache (cache miss), baixa taxa de acerto de cache e alta taxa de requisição à origem, exceções em cabeçalhos de resposta e CORS, exceções com vídeos e arquivos grandes, além de conteúdo não atualizado e erros de acesso.
Etapas preliminares gerais
Este tópico aplica-se ao Alibaba Cloud CDN, considerando que o nome de domínio acelerado já foi integrado e a resolução CNAME está ativa. Caso utilize o Dynamic Route for CDN (DCDN), alguns pontos de entrada de configuração e nomes de recursos podem diferir. Consulte a exibição real no console.
Os itens de verificação a seguir aplicam-se à maioria dos problemas de cache. Recomendamos concluí-los um a um antes de iniciar a solução de problemas para evitar conclusões incorretas causadas por interferências ambientais:
|
Item de verificação |
Descrição |
|
Verifique se a resolução CNAME está correta |
Execute |
|
Confirme se a configuração entrou em vigor globalmente |
O status da regra no console deve ser Success. A entrega da configuração para os POPs globais geralmente leva de 3 a 5 minutos. |
|
Elimine o cache local do navegador |
Teste no modo de navegação privada ou use |
|
Limpe o cache existente do CDN |
Uma nova configuração aplica-se apenas a novas requisições após entrar em vigor. Para recursos armazenados em cache sob a política anterior, envie uma atualização de URL ou de diretório usando Refresh and prefetch. |
Este tópico utiliza a definição do tempo de expiração de cache para 0 segundos como medida de contingência em vários pontos. Um tempo de expiração de 0 significa que cada requisição dispara uma busca na origem, o que aumenta significativamente a carga no servidor de origem e reduz o efeito de aceleração. Recomendamos usar essa opção apenas para conteúdo dinâmico que exige respostas em tempo real, como endpoints de API. Não configure isso globalmente para recursos estáticos.
Determine se houve acerto de cache
Antes de solucionar problemas de cache, verifique os cabeçalhos de resposta para confirmar o status do cache do recurso:
Use uma requisição GET para verificar os cabeçalhos de resposta: Execute
curl -v -o /dev/null "http(s)://accelerated-domain/resource-path". Uma requisiçãocurl -I(requisição HEAD) pode não acionar a lógica real de cache para o corpo do recurso no POP em alguns cenários, levando a uma conclusão falsa de falha de cache. Recomendamos usar uma requisição GET para verificação.Verifique o X-Cache para determinar o status de acerto:
HITindica acerto de cache.MISSou a ausência desse campo indica falha de cache, significando que a requisição disparou uma busca na origem.Analise Age e X-Swift-CacheTime para determinar a duração restante do cache:
Ageindica o número de segundos que o recurso está armazenado em cache no POP e deve ser interpretado em conjunto com o X-Cache. Se X-Cache for MISS e Age for 0, a requisição disparou uma busca na origem. Se X-Cache for HIT, mas Age for 0, o recurso foi armazenado em cache há menos de 1 segundo.X-Swift-CacheTimeindica a duração total permitida para o cache. A duração restante equivale a X-Swift-CacheTime menos Age.Confirme se a requisição passou pelo CDN: Se o cabeçalho de resposta
Servermostrar um identificador de origem, comoAliyunOSSounginx, e os cabeçalhos de resposta do CDN (como X-Cache e X-Swift-CacheTime) estiverem ausentes, a requisição ignorou o POP do CDN e foi diretamente para o servidor de origem. Executedig accelerated-domainounslookup accelerated-domainpara confirmar o resultado final da resolução. Mantenha apenas o registro CNAME atribuído pelo CDN e exclua os registros A/AAAA que apontam para o IP do servidor de origem e os registros CNAME que apontam para o nome de domínio do servidor de origem.
Cache sem efeito e falhas de cache
A requisição ainda dispara busca na origem ou falha no cache mesmo após configurar uma regra de cache?
O tempo de expiração do cache está definido como 0, mas o conteúdo acessado ainda não é o mais recente?
Configurei uma chave de cache personalizada para diferenciar requisições móveis e de PC, mas ela não entrou em vigor?
Baixa taxa de acerto de cache e alta taxa de requisição à origem
A taxa de acerto de cache está baixa, a taxa de requisição à origem está alta ou a largura de banda da origem está saturada?
O X-Cache da requisição da página principal é sempre MISS, resultando em baixa taxa de acerto de cache. Como resolver?
Quais são as possíveis causas de uma queda repentina na taxa de acerto de cache?
Exceções em cabeçalhos de resposta e CORS
Configurei Access-Control-Allow-Origin, mas as requisições ainda relatam erros de CORS?
Um cabeçalho de resposta personalizado não entrou em vigor?
Uma página ficou ilegível após a aceleração do CDN. Como proceder?
Configurei um cabeçalho de resposta para controlar download ou visualização de vídeo, mas não funcionou. O que fazer?
Um arquivo JavaScript está sendo tratado incorretamente como text/html. Como resolver?
Exceções com vídeos e arquivos grandes
Ocorre ERR_CONTENT_LENGTH_MISMATCH durante a reprodução de vídeo?
É normal ver muitos códigos de status 206 ou múltiplas buscas na origem nos logs?
Exceções de conteúdo e acesso
Recursos estáticos atingem o cache, mas a página inicial ainda carrega lentamente?
O acesso via CDN retorna um resultado diferente do acesso direto ao servidor de origem?
O arquivo baixado via CDN é inconsistente com o do servidor de origem (atualização com o mesmo nome). Como resolver?
Por que uma página 404 personalizada aparece quando acesso um recurso?
Ocorre um redirecionamento de domínio ou loop de redirecionamento após configurar uma página 403 personalizada. Como proceder?
O que fazer se o problema persistir
Antes de abrir um ticket, recomendamos localizar o problema por conta própria das seguintes maneiras:
Verifique os logs em tempo real: No console, verifique o status do cache, o status da busca na origem e a distribuição de códigos de resposta da requisição específica para determinar em quais URLs ou períodos de tempo o problema está concentrado.
Use a ferramenta de diagnóstico do console: Insira a URL problemática para detecção e obtenha rapidamente informações sobre resolução, busca na origem e cabeçalhos de resposta.
Realize testes comparativos: Acesse o mesmo recurso através do CDN e diretamente do servidor de origem, compare as diferenças nos cabeçalhos de resposta e no conteúdo, e determine se o problema está no lado do CDN ou no lado do servidor de origem.
Se o problema persistir após a solução de problemas por conta própria, recomendamos coletar as seguintes informações antes de abrir um ticket para acelerar a identificação:
O nome de domínio acelerado e a URL específica da requisição.
A saída completa de
curl -vque reproduz o problema (incluindo os cabeçalhos de requisição e resposta).O horário aproximado, região e ISP quando o problema ocorreu.
O tipo de servidor de origem (OSS, ECS, SLB, servidor de origem de terceiros, etc.) e se o servidor de origem suporta requisições de intervalo.
As etapas de solução de problemas que você tentou e o resultado de cada etapa.
Se o problema envolver a taxa de acerto de cache, forneça uma captura de tela da taxa de acerto no console e o intervalo de tempo correspondente.