Sintomas
Uma página acelerada pelo Content Delivery Network (CDN) exibe uma tela branca e não carrega.
Causas
Erros de tela branca ocorrem quando recursos estáticos não carregam. Se arquivos JavaScript ou CSS armazenados em cache nos nós do CDN retornam respostas anormais, o navegador não consegue renderizar a página.
Use a tabela a seguir para identificar a causa provável e por onde começar:
|
Sintoma |
Causa provável |
Comece por |
|
A página está em branco, mas o HTML carrega |
Um arquivo JS ou CSS armazenado em cache retorna uma resposta inesperada |
Etapa 1: comparar respostas da origem e do CDN |
|
A página quebra após uma alteração de configuração do CDN |
Um recurso do CDN (reescrita de URL, seguimento de redirecionamento) interfere nas solicitações de recursos |
Etapa 2: verificar recursos do console do CDN |
|
A página apresenta falhas após um deploy na origem |
O CDN ainda serve a versão antiga de um arquivo |
Etapa 3: atualizar o cache |
Solução de problemas
Etapa 1: comparar respostas da origem e do CDN
Carregue a página diretamente do servidor de origem e depois carregue pelo CDN. Compare as solicitações de rede para identificar qual recurso retorna uma resposta anormal.
Opção A: vinculação do arquivo hosts + comparação de arquivos HAR
Vincule o nome de domínio ao endereço IP de origem no arquivo
hostslocal.Abra a página em uma janela anônima do navegador e salve as solicitações de rede como um arquivo HAR.
Remova a vinculação do arquivo
hostspara que o tráfego passe pelo CDN novamente.Abra a mesma página e salve um segundo arquivo HAR.
Compare os dois arquivos HAR lado a lado.
O que procurar nos arquivos HAR:
Códigos de status: procure recursos que retornam
200da origem, mas um código de status diferente (como404,403ou302) pelo CDN.Cabeçalhos de resposta: compare
Content-Type,Content-Lengthe cabeçalhos relacionados a cache. Uma incompatibilidade emContent-Type(por exemplo,text/htmlem vez deapplication/javascript) indica que o CDN está servindo o tipo de conteúdo incorreto.Tamanho do corpo da resposta: um recurso com um corpo significativamente menor pelo CDN pode estar retornando uma página de erro em vez do arquivo real.
Opção B: curl --connect-to (teste rápido)
Para comparar um único recurso sem modificar o arquivo hosts, envie uma solicitação diretamente à origem e outra pelo CDN. Os dois comandos usam a mesma URL para que a comparação seja direta:
# Request directly from the origin server (replace 203.0.113.1 with your origin IP)
curl -svo /dev/null https://example.com/static/app.js --connect-to ::203.0.113.1
# Request through CDN (normal DNS resolution)
curl -svo /dev/null https://example.com/static/app.js
Compare os códigos de status HTTP e os cabeçalhos de resposta nas duas saídas.
Etapa 2: verificar recursos do console do CDN
Abra o console do CDN e revise os recursos que alteram as solicitações de recursos:
Reescrita de URL: verifique se nenhuma regra de reescrita redireciona ou modifica involuntariamente o caminho de um recurso estático.
Seguir redirecionamentos 301/302 para busca na origem: quando ativado, o CDN segue redirecionamentos do servidor de origem durante a busca na origem. Se o destino do redirecionamento retornar conteúdo inesperado, a resposta em cache estará incorreta. Desative esse recurso para testar se o problema é resolvido. Para mais informações, consulte Seguir redirecionamentos 301/302 para busca na origem.
Etapa 3: atualizar o cache
Se o recurso anormal for um arquivo em cache no CDN, atualize o cache para forçar o CDN a buscar uma cópia atualizada do servidor de origem.
Atualização pelo console vs. limpeza forçada pela API
O CDN fornece dois métodos de atualização de cache. Para solução de problemas de tela branca, use o método de API:
|
Método |
Comportamento |
Quando usar |
|
Console (atualização por diretório ou por expressão regular) |
Marca o conteúdo em cache como expirado. Na próxima solicitação, o CDN verifica a origem. Se o conteúdo do arquivo não mudou, mas apenas os cabeçalhos de resposta mudaram, o CDN pode continuar servindo o conteúdo antigo. |
Atualização de cache de rotina para arquivos cujo conteúdo mudou na origem. |
|
**Refresh Cache API** com |
Remove o conteúdo dos nós do CDN completamente. O CDN busca e armazena em cache uma nova cópia da origem na próxima solicitação. |
Solução de problemas de tela branca ou qualquer cenário em que os cabeçalhos de resposta mudaram, mas o conteúdo do arquivo não. |
Atualizar o cache pela API
Chame a Refresh Cache API (RefreshObjectCaches) com os seguintes parâmetros:
Defina a URL como o caminho do recurso afetado.
Defina o parâmetro
Forcecomotrue.
Isso remove o conteúdo dos nós do CDN completamente, em vez de apenas marcá-lo como expirado.
Para mais informações sobre como o CDN lida com atualização e pré-busca de cache, consulte Mecanismo de atualização de cache do CDN.
Soluções
Aplique uma ou ambas as correções a seguir com base nos resultados da solução de problemas:
Desative o recurso Seguir redirecionamentos 301/302 para busca na origem. Se esse recurso causar a resposta anormal, desative-o no console do CDN. Para detalhes de configuração, consulte Seguir redirecionamentos 301/302 para busca na origem.
Force a atualização do cache pela API. Chame a Refresh Cache API com o parâmetro
Forcedefinido comotruepara limpar o recurso afetado dos nós do CDN.
Métodos de solução de problemas
Uma tela branca geralmente indica que os arquivos JavaScript (JS) ou Cascading Style Sheets (CSS) carregados pela página são inconsistentes com o conteúdo da página. Compare o arquivo HTTP Archive (HAR) de uma solicitação direta ao servidor de origem com o arquivo HAR de uma solicitação pelo CDN para identificar a discrepância.
-
Após identificar o recurso em cache problemático, limpe-o do cache do CDN. Se apenas os cabeçalhos de resposta mudaram, mas o arquivo de origem não, use a API para forçar a limpeza do recurso, pois uma atualização pelo console apenas marca o conteúdo em cache como expirado sem removê-lo.
Se o arquivo de origem muda, mas os cabeçalhos de resposta não, o CDN não atualiza automaticamente o conteúdo em cache nos nós de borda.
Verifique as configurações de redirecionamento no console do CDN, como regras de reescrita de URL e o recurso Seguir redirecionamentos 301/302 para busca na origem. Essas configurações podem causar erros de carregamento de recursos quando a origem usa lógica de redirecionamento complexa.
Causa
O recurso Seguir redirecionamentos 301/302 para busca na origem está ativado no CDN e armazena a resposta de redirecionamento no cache. As solicitações subsequentes dos clientes recebem o redirecionamento em cache em vez do recurso correto.
Solução
Desative o recurso Seguir redirecionamentos 301/302 para busca na origem e limpe as entradas de cache afetadas.
Origem do conteúdo
0002HJBBWX
Produtos aplicáveis
CDN
DCDN
Prevenção
Use versionamento de arquivos para recursos estáticos. Implante cada versão com um nome de arquivo versionado (por exemplo, app.v2.js ou app.20260216.js) em vez de sobrescrever o mesmo arquivo. Nomes de arquivo versionados garantem que o CDN sirva o novo arquivo imediatamente, pois a URL é diferente e nenhuma cópia em cache existe nos nós do CDN.