Todos os produtos
Search
Central de documentação

CDN:Origin fetch troubleshooting

Última atualização: Sep 06, 2026

Este tópico resume problemas típicos e métodos de solução para cenários de origin fetch do CDN por sintoma. O conteúdo abrange falhas de origin fetch, erros 5xx, loops de redirecionamento, erros 4xx, erros de origin fetch do OSS, além de conteúdo e comportamento anormais no origin fetch.

Referência rápida de sintomas

Identifique o ponto de entrada com base no fenômeno observado no cliente e siga as etapas da seção correspondente para solucionar o problema item por item.

Sintoma ou código de status

Causa comum

Entrada de solução de problemas

502 Bad Gateway

O protocolo ou a porta de origem não corresponde à escuta do servidor de origem, o SNI de origem está ausente ou o certificado do servidor de origem é inválido

Como solucionar um erro 502 retornado durante o origin fetch?

502 retornado quando o protocolo de origem está definido como Follow

O cliente acessa via HTTPS e o CDN realiza o origin fetch via HTTPS adequadamente, mas o servidor de origem não suporta HTTPS

Como solucionar um erro 502 quando o protocolo de origem está definido como Follow?

504 Gateway Timeout

O servidor de origem responde lentamente, um firewall descarta pacotes silenciosamente ou o tempo limite da solicitação HTTP de origem é muito curto

Como solucionar um erro 504 durante o origin fetch?

503 Service Temporarily Unavailable

O service no servidor de origem está anormal ou sobrecarregado, o servidor limita solicitações ou o software de segurança bloqueia endereços IP de origin fetch

Como solucionar um erro 503 durante o origin fetch?

ERR_TOO_MANY_REDIRECTS

O servidor de origem tem um redirecionamento forçado de HTTP para HTTPS configurado, enquanto o CDN realiza o origin fetch via HTTP

Loop de redirecionamento causado por um redirecionamento forçado no servidor de origem

O loop de redirecionamento aparece apenas após configurar o host de origem ou SNI de origem

Após o servidor de origem corresponder ao site de destino, a regra de redirecionamento forçado desse site entra em vigor

Loop de redirecionamento após a configuração do host de origem e SNI de origem

404, 403, 500 ou 502 retornado após configurar o host de origem

O host de origem não corresponde ao host virtual do servidor de origem (server_name, ServerName ou nome do host IIS)

Erros retornados após a configuração do host de origem padrão

403 Forbidden

Uma regra de controle de acesso no CDN foi acionada, ou a proteção contra hotlink, restrições de IP ou o WAF do servidor de origem bloqueou a solicitação de origin fetch

O que fazer se um erro 403 Forbidden for retornado?

Erro 404 retornado no acesso via CDN, mas o acesso direto ao servidor de origem funciona

O host de origem está incorreto, um nó armazenou em cache uma resposta 404 antiga ou o caminho da solicitação difere em maiúsculas/minúsculas ou codificação

Um erro 404 é retornado durante o origin fetch, mas o acesso direto ao servidor de origem funciona

bucket acl error

O bucket do OSS na origem está no modo privado e o origin fetch de buckets privados do OSS não está ativado

O OSS relata um erro bucket acl

forbidden by kms error

Os objetos no OSS estão criptografados com KMS e a função de origin fetch do CDN não tem permissões de descriptografia do KMS

O OSS relata um erro kms

forbidden to list buckets error

O origin fetch de buckets privados do OSS entra em conflito com a configuração de página inicial padrão da hospedagem de site estático do OSS e o acesso ao diretório raiz é negado

O OSS relata um erro forbidden to list buckets

A adaptação de dispositivo para de funcionar (dispositivos diferentes recebem a mesma página)

A resposta de redirecionamento 302 para o primeiro dispositivo foi armazenada em cache e outros dispositivos que acessam a mesma URL atingem esse cache

A adaptação de dispositivo falha após redirecionamentos 302 por tipo de dispositivo

Redirecionamentos de página falham ou alguns recursos estão inacessíveis

Ignorar parâmetros de URL faz com que solicitações com parâmetros diferentes compartilhem o mesmo cache, ou o host de origem não corresponde

Redirecionamentos de página falham após a ativação da aceleração

Downloads de arquivos grandes são interrompidos, ou downloads retomáveis ou busca em vídeo falham

O servidor de origem não suporta solicitações Range ou responde com um código de status diferente de 206 ao origin fetch Range

Exceções de origin fetch Range

Como determinar se o problema ocorre durante o origin fetch

Problemas de origin fetch geralmente se manifestam como erros 5xx ou 4xx ao acessar o nome de domínio acelerado, ou como respostas inesperadas. Use as etapas a seguir para identificar o responsável e, em seguida, acesse a seção correspondente para solucionar o problema.

  • Verifique se a solicitação passa pelo CDN: Execute curl -I http(s)://accelerated-domain/resource-path para verificar os cabeçalhos de resposta. Se contiverem campos de assinatura do CDN, como X-Cache ou Via, a solicitação chegou a um nó do CDN. Caso esses campos estejam ausentes, execute dig accelerated-domain para verificar se o resultado da resolução é o CNAME atribuído pelo CDN. Se a resolução estiver incorreta, corrija-a primeiro para que o nome de domínio acelerado resolva apenas para o registro CNAME fornecido pelo CDN. Se a resolução estiver correta, mas os cabeçalhos de assinatura do CDN ainda estiverem ausentes, investige sequestro de DNS ou vinculações locais no arquivo hosts.

    Nota

    Um cabeçalho de resposta Server: AliyunOSS isoladamente não prova que a solicitação chegou diretamente ao OSS. Quando o OSS atua como origem do CDN, o CDN pode repassar esse cabeçalho após o origin fetch. Confie no resultado da resolução DNS e nos cabeçalhos de assinatura do CDN.

  • Determine se a exceção vem do cache ou do origin fetch: Após confirmar que a solicitação passa pelo CDN, verifique o X-Cache.

    Se o valor for HIT, a solicitação atingiu o cache do CDN. A resposta anormal pode vir de um cache antigo. Execute uma atualização de URL e acesse novamente para reproduzir o problema.

    Se o valor for MISS, o CDN já realizou o origin fetch. Se a resposta ainda for anormal, o problema provavelmente reside no caminho de origin fetch ou na resposta do servidor de origem.

  • Compare o acesso direto ao servidor de origem com o acesso via CDN: Vincule o arquivo hosts local ou acesse o endereço IP ou nome de domínio do servidor de origem diretamente. Se o acesso direto funcionar, mas o acesso via CDN falhar, concentre-se na configuração de origin fetch (protocolo, porta, host e SNI) e em como o servidor de origem lida com os IPs de origin fetch do CDN. Se o acesso direto também falhar, corrija o problema no servidor de origem primeiro. Nenhum ajuste é necessário no CDN.

  • Compare os logs de acesso do CDN com os do servidor de origem: Se os logs do servidor de origem não contiverem a solicitação, o origin fetch falhou antes de chegar ao servidor. Verifique a resolução DNS, a conectividade de rede, o handshake TLS e os grupos de segurança ou firewalls. Se o servidor recebeu a solicitação mas retornou um erro, compare o caminho da solicitação e os campos Host, User-Agent e Referer nos logs de ambos os lados para localizar a diferença campo por campo.

Falhas de origin fetch e erros 5xx

Como solucionar um erro 502 retornado durante o origin fetch?

Um nó do CDN, atuando como gateway, retorna um erro 502 (Bad Gateway) quando não consegue obter uma resposta válida do servidor de origem. Falhas em qualquer uma das seguintes etapas no caminho de origin fetch podem retornar um erro 502:

  • O servidor de origem não suporta HTTPS (escuta apenas na porta 80), mas o CDN está configurado para realizar o origin fetch via HTTPS.

  • A porta de origem não corresponde à porta na qual o servidor de origem realmente escuta.

  • O servidor de origem depende do SNI para selecionar o certificado, mas o CDN não carrega um valor SNI ou carrega um valor incorreto.

  • O certificado SSL do servidor de origem expirou, é inválido ou não corresponde ao nome de domínio.

  • O servidor de origem usa um certificado autoassinado ou emitido por uma CA interna, e a validação TLS durante o origin fetch falha.

Etapas de solução de problemas:

  • Verifique se o servidor de origem suporta o protocolo de origin fetch atual: Execute curl -Iv https://origin-domain para verificar o servidor de origem diretamente. Se a conexão for recusada ou atingir o tempo limite, o servidor não suporta HTTPS. Altere o protocolo de origem para HTTP. Se o servidor suportar HTTPS e o certificado for válido, escolha o origin fetch HTTPS ou o protocolo Follow.

  • Verifique se a porta de origem corresponde à porta de escuta do servidor: A porta de origem padrão é 443 para HTTPS e 80 para HTTP. Se o servidor usar uma porta personalizada (1 a 65535), especifique a porta correspondente na configuração do protocolo de origem.

  • Verifique a configuração de SNI de origem: Quando o servidor de origem hospeda vários sites HTTPS no mesmo endereço IP, ele depende do campo SNI (Server Name Indication) no handshake TLS para selecionar o certificado SSL correspondente. Se o origin fetch do CDN não carregar um valor SNI ou se o valor estiver incorreto, o servidor não conseguirá corresponder ao certificado correto, o handshake TLS falhará e um erro 502 será retornado.

    Etapas da solução: Faça logon no console do CDN, escolha Domain Management, selecione o nome de domínio de destino, acesse Origin Settings e ative origin SNI. Insira o nome de domínio que o servidor de origem realmente usa para fornecer services (geralmente o mesmo Common Name do certificado de origem). Defina também o host de origem como o nome de domínio de origem.

    Durante o origin fetch, o CDN valida o valor SNI em relação ao Common Name no certificado do servidor de origem. Se os dois valores realmente não puderem corresponder (por exemplo, o servidor usa um certificado em uma camada de acesso unificada), adicione o Common Name do certificado à Common Name whitelist.

    Nota

    O SNI de origem seleciona o certificado durante o handshake TLS, enquanto o host de origem faz o roteamento de host virtual na camada HTTP. Ambos têm propósitos diferentes, mas geralmente são definidos com o mesmo nome de domínio de origem.

  • Verifique a validade do certificado SSL no servidor de origem: Confirme se o certificado não expirou nem foi revogado, e se os nomes de domínio no certificado incluem o nome de domínio de origem. Execute curl -Iv https://origin-domain 2>&1 | grep -E "expire|subject|issuer" para visualizar o período de validade, o emissor e os nomes de domínio vinculados. Se o certificado tiver expirado ou não corresponder ao domínio, atualize-o no servidor de origem. Se o servidor usar um certificado autoassinado ou emitido por uma CA interna, substitua-o por um certificado emitido por uma CA publicamente confiável ou altere o protocolo de origem para HTTP.

Solução: Altere o protocolo de origem com base na configuração real do servidor de origem: se suportar apenas HTTP → selecione HTTP (porta 80 por padrão); se suportar HTTPS e o certificado for válido → selecione HTTPS (porta 443 ou personalizada); se suportar ambos e o certificado for bem mantido → selecione o protocolo Follow. Para etapas detalhadas, consulte Configure the origin protocol policy.

Como solucionar um erro 502 quando o protocolo de origem está definido como Follow?

Quando o protocolo de origem está definido como Follow, o CDN usa o mesmo protocolo da solicitação do cliente para o origin fetch: se o cliente usar HTTP, o CDN usará HTTP; se usar HTTPS, o CDN usará HTTPS. Se um cliente acessar o CDN via HTTPS, mas o servidor de origem não suportar HTTPS, o handshake TLS falhará e a solicitação de origin fetch também falhará. Este problema tem a mesma causa de "Como solucionar um erro 502 retornado durante o origin fetch?" e pode ser diagnosticado com as mesmas etapas.

Soluções:

  • Método 1: Altere o protocolo de origem de Follow para HTTP para que o CDN sempre use HTTP no origin fetch.

  • Método 2: Configure um certificado SSL no servidor de origem para que ele suporte acesso HTTPS. Para mais informações, consulte Configure the origin protocol policy.

Como solucionar um erro 504 durante o origin fetch?

Um erro 504 (Gateway Timeout) indica que um nó do CDN não conseguiu obter uma resposta do servidor de origem dentro do tempo especificado durante o origin fetch.

As causas comuns incluem:

  • O servidor de origem responde lentamente ou o service está indisponível.

  • Dispositivos de rede intermediários ou firewalls descartam solicitações de origin fetch (quando pacotes SYN são descartados, isso se manifesta como tempo limite de conexão).

  • O protocolo ou a porta de origem está configurado incorretamente, impedindo o estabelecimento da conexão (isso geralmente gera um erro 502, mas se o firewall descartar pacotes silenciosamente em vez de recusá-los ativamente, também pode gerar um erro 504).

  • O tempo limite de leitura de origem é muito curto para cobrir o tempo de resposta real do servidor de origem.

Os tempos limite de origin fetch dividem-se em duas fases, que indicam diferentes direções de solução de problemas:

  • Tempo limite da fase de conexão: O tempo limite para um nó do CDN estabelecer uma conexão TCP com o servidor de origem é de 10 segundos. Um tempo limite nesta fase geralmente indica que o servidor não está escutando na porta de origem, um firewall ou grupo de segurança descarta pacotes SYN dos IPs de origin fetch do CDN, ou há perda severa de pacotes no caminho de rede.

  • Tempo limite da fase de leitura: A conexão foi estabelecida, mas o servidor não retorna uma resposta completa dentro do tempo limite de leitura de origem (30 segundos por padrão). Isso geralmente indica processamento lento no servidor, devido a consultas lentas ao banco de dados, aplicativos de backend bloqueados ou alta carga.

Etapas de solução de problemas:

  1. Verifique se o servidor de origem está acessível: Execute curl -I http(s)://origin-domain ou acesse o servidor em um navegador para verificar o tempo de resposta e o código de status. Se o próprio servidor responder lentamente ou estiver inacessível, corrija o problema de desempenho ou disponibilidade nele primeiro.

  2. Identifique em qual fase o tempo é gasto: Execute o seguinte comando:

    curl -o /dev/null -s -w "time_connect:%{time_connect} time_starttransfer:%{time_starttransfer} time_total:%{time_total}\n" http(s)://origin-domain/resource-path

    time_connect é o tempo necessário para estabelecer a conexão TCP, time_starttransfer é o tempo para receber o primeiro byte e time_total é o tempo total.

    • Se time_connect já for significativamente alto, solucione problemas de rede e firewall como uma questão da fase de conexão.

    • Se time_starttransfer for muito maior que time_connect, o processamento no servidor de origem está lento. Otimize o servidor.

    • Se time_total for muito maior que time_starttransfer, o corpo da resposta é muito grande ou a largura de banda de saída do servidor é insuficiente.

  3. Verifique as configurações de protocolo e porta de origem: Certifique-se de que o protocolo e a porta configurados no CDN correspondam à escuta real do servidor de origem. Se a porta estiver incorreta ou o servidor não estiver escutando nela, o CDN retornará um erro 504 após o tempo limite.

  4. Verifique o firewall ou grupo de segurança do servidor de origem: Se o servidor limitar ou bloquear faixas de IPs de origin fetch do CDN, algumas solicitações podem atingir o tempo limite. Políticas que descartam pacotes SYN silenciosamente se manifestam diretamente como tempos limite na fase de conexão. Adicione as faixas de IPs de origin fetch do CDN à lista de permissões do servidor (consulte What are the CDN origin fetch node IP addresses).

  5. Verifique a qualidade do caminho de rede entre os nós do CDN e o servidor de origem: Podem existir instabilidade, perda de pacotes ou problemas de roteamento da operadora entre os nós e o servidor. Use ferramentas como MTR ou traceroute para analisar o caminho (entre em contato com o suporte técnico da Alibaba Cloud para iniciar diagnósticos do lado do nó do CDN).

  6. Aumente o tempo limite de leitura de origem: Se o tempo de resposta do servidor estiver próximo do padrão de 30 segundos, aumente o origin HTTP request timeout no console do CDN para reduzir erros 504. O valor máximo configurável é 150 segundos, mas recomendamos não exceder 60 segundos. Use isso apenas como mitigação temporária. A solução definitiva é otimizar o desempenho de resposta do servidor.

Como solucionar um erro 503 durante o origin fetch?

Um erro 503 (Service Temporarily Unavailable) indica que o servidor de origem está temporariamente incapaz de processar solicitações. Um erro 503 recebido durante o origin fetch do CDN geralmente é causado pelo servidor de origem:

  • O programa de service web no servidor de origem está anormal, não foi iniciado ou está reiniciando.

  • A carga no servidor de origem está muito alta (CPU, memória ou conexões saturadas).

  • Há um limite de taxa de solicitação por IP ou de conexões simultâneas configurado no servidor.

  • Políticas de segurança, como software de segurança (Yunsuo ou SafeDog), WAF ou firewall no servidor, bloqueiam endereços IP de origin fetch do CDN.

  • O servidor entrou em modo de manutenção ou está sendo implantado.

Etapas de solução de problemas:

  1. Vincule o arquivo hosts para reproduzir o problema acessando o servidor diretamente: Modifique o arquivo hosts local para apontar o domínio acelerado para o IP do servidor de origem e acesse o domínio. Se o acesso direto também retornar 503, o problema está no servidor e o nó do CDN pode ser descartado.

  2. Verifique se o service web no servidor está normal: Confirme se processos como NGINX, Apache ou IIS estão em execução e escutando na porta correspondente (80/443 ou personalizada). Se um processo estiver anormal ou parado, reinicie-o e verifique os logs para localizar a causa.

  3. Verifique a carga e a configuração de limite de taxa do servidor: Alta carga de CPU, memória ou conexões, ou limites por IP (como os módulos limit_req ou limit_conn do NGINX), podem causar erro 503 no origin fetch. Avalie a necessidade de dimensionar recursos ou ajustar limites com base no volume de tráfego.

    Nota

    As solicitações de origin fetch do CDN chegam concentradas a partir de um conjunto limitado de IPs de nós e são facilmente confundidas com ataques de alta frequência quando o servidor limita por IP. Recomendamos definir um limite mais alto para as faixas de IPs de origin fetch do CDN ou isentá-las diretamente.

  4. Verifique se políticas de segurança bloqueiam IPs de origin fetch do CDN: Grupos de segurança, firewalls, WAF ou softwares de segurança podem identificar IPs de origin fetch como tráfego anormal e bloqueá-los. Procure registros de IPs de nós do CDN nos logs de bloqueio e adicione as faixas de origin fetch à lista de permissões (para obtê-las, consulte What are the CDN origin fetch node IP addresses).

  5. Atualize o cache do CDN: Se o erro 503 persistir após a recuperação do servidor, execute uma atualização de URL. Para códigos 500, 502, 503 e 504, a prioridade de cache do CDN é: não armazenar se o servidor retornar Set-Cookie → armazenar conforme o tempo de expiração configurado no console (se houver) → senão, armazenar conforme Pragma, Cache-Control e Expires do servidor → armazenar por 1 segundo por padrão. Portanto, por padrão, o erro 503 não causa impacto persistente. Porém, se um longo tempo de expiração para 5xx foi configurado no console, as respostas anormais continuam em cache até expirarem. Nesse caso, atualize manualmente ou defina o tempo de cache de 5xx como 0 (consulte Configure expiration for HTTP status codes).

O que fazer se o origin fetch for anormal após configurar o host de origem padrão?

Sintoma

Servidores de origem geralmente distinguem sites virtuais pelo cabeçalho Host. Se o host de origem configurado no CDN não corresponder ao domínio esperado pelo servidor, ele poderá retornar erros como 404, 403 ou 500.

Etapas de solução de problemas

  1. Verifique se o host de origem corresponde à configuração de host virtual do servidor

    • NGINX: Verifique se server_name contém o domínio configurado como host de origem.

    • Apache: Verifique ServerName / ServerAlias em <VirtualHost>.

    • IIS: No IIS Manager, selecione o site de destino > Bindings e verifique se o campo "Host name" corresponde ao host de origem.

  2. Atualize o cache do CDN

Após modificar o host de origem, execute uma atualização de URL para limpar respostas de erro que possam estar em cache.

Exceções de redirecionamento

O que fazer se ocorrer um loop de redirecionamento (ERR_TOO_MANY_REDIRECTS) durante o origin fetch do CDN após configurar o servidor para redirecionar HTTP para HTTPS?

Sintoma: O site retorna "Too many redirects" ou "ERR_TOO_MANY_REDIRECTS", ou recursos como imagens, CSS e JavaScript falham ao carregar.

Causa: O servidor de origem responde ativamente com um redirecionamento forçado de HTTP para HTTPS (comum em aaPanel, WAF e NGINX), mas o protocolo de origem do CDN está definido como HTTP. Isso cria um loop:

Cliente → CDN → CDN faz origin fetch via HTTP (porta 80) → Servidor retorna 301 para HTTPS → Se o seguimento de redirecionamento 301/302 não estiver configurado, o CDN retorna o 301 ao cliente → Navegador segue para HTTPS → Origin fetch via CDN sobre HTTP ocorre novamente → Servidor retorna outro 301 → ... o navegador redireciona repetidamente até reportar ERR_TOO_MANY_REDIRECTS. Se o seguimento de redirecionamento estiver ativado, os nós do CDN seguem os redirecionamentos repetidamente e retornam o 301 ao usuário após atingir o limite, o que também forma um loop. Para mais informações, consulte Configure 301/302 redirection.

Soluções (escolha uma):

  • Solução A: Fazer o CDN usar HTTPS no origin fetch. Pré-requisito: o servidor deve ter certificado SSL válido e escutar na porta 443. Altere a porta de origem para 443 e o protocolo para HTTPS. Se o servidor escutar múltiplos domínios, defina também o SNI e o host de origem como o domínio acelerado ou o domínio de origem.

  • Solução B: Desativar o redirecionamento forçado no servidor e manter HTTP. Faça logon no servidor e desative a regra de redirecionamento forçado. Mantenha o protocolo do CDN como HTTP e a porta como 80. A conexão entre clientes e CDN ainda pode usar HTTPS, desde que CDN e servidor concordem com o mesmo protocolo.

Nota

Ao escolher a Solução B, o servidor deixa de impor HTTPS. Se a aceleração do CDN for removida ou o servidor for acessado diretamente, a proteção do HTTPS forçado será perdida. Avalie se esse risco é aceitável. Caso contrário, prefira a Solução A.

Operação adicional (recomendada em qualquer solução): Execute uma atualização de URL para limpar respostas de redirecionamento em cache e aplicar a nova configuração imediatamente. A distribuição da configuração para todos os nós leva alguns minutos. Durante esse período, alguns nós podem retornar a resposta antiga. Para políticas padrão de cache, consulte Configure expiration for HTTP status codes.

Como solucionar ERR_TOO_MANY_REDIRECTS após configurar o host de origem e o SNI de origem?

Esta entrada aplica-se apenas se o loop aparecer somente após configurar o host ou SNI de origem. Se o loop já existia antes, consulte a entrada anterior sobre redirecionamento forçado HTTP para HTTPS. A causa raiz continua sendo o servidor com redirecionamento forçado enquanto o CDN usa HTTP. Ao configurar o host ou SNI corretamente, o servidor identifica o site e aplica a regra de redirecionamento, iniciando o loop. Solucione assim:

  • Desative o redirecionamento forçado de HTTPS no servidor: Acesse o console do servidor (ex: aaPanel), vá para configurações de HTTPS e desative "Force HTTPS" ou "HTTP to HTTPS redirect".

  • Garanta consistência entre host e SNI de origem: Nas configurações de origem, defina ambos com o domínio correto (geralmente o domínio de origem) e mantenha-os iguais para atender às expectativas do servidor.

  • Atualize o cache do CDN: Após ajustar a configuração, atualize o cache para limpar respostas de redirecionamento armazenadas.

Erros 4xx de origin fetch

Distinga o foco da solução pelo código de status:

  • 404: A solicitação chegou ao servidor, mas ele não encontrou o recurso naquele host virtual. Verifique se o caminho do origin fetch está correto e se o CDN armazenou um 404 antigo.

  • 403: O servidor rejeitou a solicitação. Verifique proteções contra hotlink baseadas em Referer, listas de permissões de IP, regras de WAF e o cabeçalho Host em relação às políticas de segurança do servidor.

O que fazer se um erro 403 Forbidden for retornado?

O erro 403 indica rejeição da solicitação, que pode ocorrer no CDN ou no servidor de origem. Solucione assim:

  1. Determine se o erro 403 vem do CDN ou do servidor: Se houver proteção contra hotlink, lista de bloqueios/permissões ou assinatura de URL no CDN, regras incorretas bloqueiam a solicitação no nó e retornam 403 diretamente, sem chegar ao servidor. Para solucionar erros 403 causados por controle de acesso no CDN, consulte Troubleshoot access control issues. Se o erro vier do servidor, siga as etapas abaixo.

  2. Verifique proteções contra hotlink e restrições de IP no servidor: Se o servidor tiver proteção baseada em Referer ou listas de IP, o origin fetch pode ser rejeitado por falta de Referer ou IP não permitido. Adicione as faixas de IPs de origin fetch do CDN à lista de permissões do servidor (consulte What are the CDN origin fetch node IP addresses) ou ajuste as regras de hotlink.

  3. Defina o host de origem padrão como o domínio vinculado ao servidor (não o domínio acelerado) para garantir correspondência com o certificado e host virtual. Em servidores com Cloudflare ou WAF, cabeçalhos Host inconsistentes frequentemente causam bloqueios.

  4. Verifique a consistência do domínio no WAF: Se o servidor for uma instância WAF, garanta que o cabeçalho Host no origin fetch corresponda ao domínio protegido no WAF. Caso contrário, o WAF bloqueará a solicitação.

  5. Verifique os logs de acesso do servidor: Confirme se solicitações de IPs de nós do CDN estão sendo bloqueadas e identifique o motivo.

  6. Atualize o cache do CDN: Após alterar configurações, atualize o cache para limpar respostas 403 armazenadas.

O que fazer se o CDN retornar 404, mas o acesso direto ao servidor funcionar?

Como a conexão TCP e o handshake tiveram sucesso (senão seria 502 ou 504), o servidor não encontra o recurso após receber a solicitação. Se isso ocorreu apenas após configurar o host de origem, veja a entrada anterior. Causas comuns:

  • Host de origem incorreto: O servidor usa hospedagem virtual, mas o CDN não envia o cabeçalho Host correto, roteando a solicitação para o site errado.

  • Cache antigo de 404: O servidor retornou 404 anteriormente (ex: arquivo não enviado). O arquivo foi enviado depois, mas o CDN ainda retorna o 404 em cache.

  • Diferença em maiúsculas/minúsculas ou barras no caminho: Alguns servidores diferenciam maiúsculas de minúsculas, e o caminho é processado diferentemente no acesso direto versus via CDN.

Solução:

  1. Verifique e configure o host de origem: Escolha Origin Settings > Default Origin Host > Modify, ative a chave do host de origem e defina o tipo como Origin Domain Name.

  2. Limpe o cache antigo: Escolha Refresh and Prefetch > URL Refresh para limpar o cache 404 anormal do recurso.

  3. Se tudo estiver correto, compare caminhos e cabeçalhos nos logs do CDN e do servidor para achar a diferença.

Erros de origin fetch do OSS

O que fazer se o erro "You have no right to access this object because of bucket acl." for retornado ao acessar recursos do OSS?

Este erro indica que o bucket do OSS é privado e solicitações sem assinatura não podem ler objetos. Buckets privados exigem autenticação para evitar consumo indevido de tráfego. Não recomendamos tornar o bucket público apenas para resolver isso.

Solução: Ative o recurso Configure origin fetch from a private OSS bucket para o domínio acelerado. Assim, o CDN usa automaticamente a função AliyunCDNAccessingPrivateOSSRole para assinar o acesso ao bucket privado, sem exigir assinaturas dos usuários finais. Caminho: console do CDN > Domain Management > domínio alvo > Origin Settings > Origin fetch from private OSS buckets.

O que fazer se o erro "This request is forbidden by kms." for retornado ao acessar recursos do OSS?

Se o bucket do OSS for criptografado com KMS, conceda permissões adicionais à função de origin fetch do CDN para usar a chave KMS. Sem isso, o CDN não descriptografa os arquivos e retorna This request is forbidden by kms..

Solução:

  1. Faça logon no console do RAM. No painel esquerdo, escolha Identities > Roles.

  2. Localize a função AliyunCDNAccessingPrivateOSSRole e clique em Grant Permission.

    Nota

    Se não encontrar a função, o origin fetch de buckets privados nunca foi ativado. Ative-o conforme descrito em Configure origin fetch from a private OSS bucket para criar a função automaticamente e retorne a esta etapa.

  3. Em System Policy, pesquise e adicione AliyunKMSCryptoUserAccess e clique em Grant permissions.

  4. Use o recurso Refresh and Prefetch e acesse o recurso novamente após a conclusão.

O que fazer se o erro "You are forbidden to list buckets" for retornado ao acessar o domínio após ativar origin fetch de buckets privados?

Isso ocorre quando três condições são atendidas: bucket privado, hospedagem de site estático ativada e Configure origin fetch from a private OSS bucket ativado. Ao acessar a raiz (ex: https://example.com/), recebe-se 403 com x-tengine-error: You are forbidden to list buckets.

Causa: Conflito entre o origin fetch de buckets privados e a página inicial padrão da hospedagem estática.

Nota

A hospedagem estática mapeia requisições anônimas à raiz para a página inicial (ex: index.html). Com o origin fetch privado ativado, as requisições são autenticadas e não mapeadas para a página inicial. O OSS interpreta isso como tentativa de listar o bucket, o que é negado por padrão em buckets privados.

Soluções:

  • Solução 1: Se não precisar da hospedagem estática, desative-a. Veja Static website hosting.

  • Solução 2: Se precisar manter a hospedagem estática, configure reescrita de URI no CDN para evitar origin fetch na raiz: defina Path to Be Rewritten como ^/$, Target Path como /index.html e Flag como Redirect. Assim, o CDN retorna 302 para /index.html. Detalhes em Rewrite access URLs.

Conteúdo e comportamento anormais

O que fazer se a adaptação de dispositivo parar de funcionar após ativar o CDN e o servidor usar redirecionamentos 302 por dispositivo?

Sintoma: O servidor usa 302 para servir interfaces conforme o dispositivo. Com o CDN, a resposta 302 do primeiro usuário fica em cache. Outros dispositivos acessando a mesma URL recebem a página errada, quebrando a adaptação.

Solução A (recomendada): Não armazenar o 302 em cache. Configure o CDN para não cachear a URL inicial, mas sim a página pós-redirecionamento. Configure o servidor para não cachear a página inicial (no-cache tem alta prioridade). A página não será armazenada se contiver:

  • Cache-control:no-cache, no-store

  • Cache-control:max-age=0

  • pragma:no-cache

  • Cache-control:private

Nota
  • no-store proíbe totalmente o armazenamento e é a opção mais restritiva.

  • no-cache permite armazenar, mas exige revalidação. Na prática, evita servir redirecionamentos antigos. Para proibir armazenamento, prefira no-store.

  • private restringe o cache a navegadores. Como cache compartilhado, o CDN não armazena. Porém, semanticamente restringe "quem" pode cachear, não "se" pode cachear. Para garantir que o CDN não armazene, recomendamos no-store.

Solução B: Configurar o CDN para não cachear a URL inicial. Se não puder alterar cabeçalhos no servidor, combine regras de cache de diretórios e extensões no CDN para definir tempo 0 na URL de redirecionamento inicial.

Solução C: Usar chave de cache personalizada por dispositivo. Para manter o cache, configure uma chave que inclua o tipo de dispositivo, separando caches de PC e mobile. Veja Custom cache key.

Nota

Não recomendamos Vary: User-Agent. A quantidade de User-Agents é enorme, causando fragmentação de cache e baixa taxa de acerto.

O que fazer se redirecionamentos falharem ou recursos ficarem inacessíveis após ativar o CDN?

Possível causa: o servidor depende de parâmetros de URL ou cabeçalho Host específico, e o comportamento padrão do CDN pode perder parâmetros ou alterar o Host. Solucione assim:

  1. Verifique parâmetros de URL nas regras de cache: Se o servidor usa parâmetros para lógica/redirecionamento, atente-se ao "Ignore Parameters". Ele afeta apenas a chave de cache. O origin fetch ainda leva os parâmetros completos. O problema não é "servidor não processa por falta de parâmetro", mas "requisições diferentes batem no mesmo cache". Desative Ignore Parameters ou retenha parâmetros críticos (veja Ignore parameters).

  2. Defina o host de origem como o domínio esperado pelo servidor: Garante identificação correta do Host e processamento da lógica.

  3. Execute atualização de diretório ou URL: Aplique a nova configuração executando uma tarefa de atualização.

O que fazer se downloads grandes forem interrompidos ou busca em vídeo falhar devido a exceções no origin fetch Range?

Sintoma: Downloads param, retomada falha ou busca em vídeo dá erro/reinicia.

Causa: Com origin fetch Range ativado, o CDN envia solicitações com cabeçalho Range. Se o servidor não suportar Range (ignora o cabeçalho e retorna 200 completo) ou retornar Content-Range incompatível, ocorrem falhas.

Etapas de solução:

  1. Verifique suporte a Range: Execute curl -I -H "Range: bytes=0-1023" http(s)://origin-domain/resource-path. Se retornar 206 Partial Content com Content-Range correto, suporta Range. Se retornar 200 OK completo, ignora Range.

  2. Ajuste a configuração conforme o suporte do servidor: Se não suportar, modifique o servidor para responder 206 ou desative o origin fetch Range no CDN. Caminho: console do CDN > Domain Management > domínio > Video Settings > Range Origin Fetch. Desativado por padrão. Veja Configure range origin fetch.

  3. Verifique estabilidade dos cabeçalhos: O origin fetch Range exige Content-Length, ETag e Last-Modified estáveis. Conteúdo dinâmico sem esses cabeçalhos torna o Range não confiável.

  4. Verifique limpeza de fatias em cache: Se o servidor retornar status não-206, o CDN exclui fatias em cache. Respostas 5xx intermitentes limpam fatias repetidamente, causando interrupções e alto tráfego. Veja Configure expiration for HTTP status codes.

Nota

Com Range ativado, o arquivo é dividido em várias solicitações, aumentando o QPS. Se houver limites por IP no servidor, use a API DescribeL2VipsByDomain para obter IPs de origin fetch e adicioná-los à lista de permissões ou aumentar limites.

Páginas corrompidas ou compressão dupla causada pela compressão de origin fetch

Sintoma

Página corrompida via CDN ou falha de decodificação no navegador (ERR_CONTENT_DECODING_FAILED).

Causa

  • Servidor retornou conteúdo compactado (gzip/br) sem Content-Encoding. O CDN compacta novamente, causando erro.

  • Content-Encoding declarado não corresponde à codificação real.

Etapas de solução

  1. Compare cabeçalhos do servidor e do CDN

# Direct access to the origin server
curl -I -H "Accept-Encoding: gzip" https://<origin-domain>/<resource-path>

# Access through CDN
curl -I -H "Accept-Encoding: gzip" https://<accelerated-domain>/<resource-path>

Verifique consistência de Content-Encoding, Content-Length e Content-Type.

  1. Verifique a compressão inteligente do CDN

Se o servidor já retorna conteúdo compactado (com Content-Encoding: gzip), o CDN não deve compactar novamente. Se houver compressão dupla, verifique a "Intelligent Compression" no console ou desative a compressão no CDN.

  1. Corrija os cabeçalhos do servidor

Garanta que o servidor sempre defina Content-Encoding correto ao retornar conteúdo compactado.

Exceções de sessão causadas por Set-Cookie em respostas dinâmicas

Sintoma

Usuários recebem sessões de outros (login trocado) ou login expira imediatamente.

Causa

Servidor retorna Set-Cookie em página dinâmica. Se o CDN cachear essa resposta, outros usuários recebem Cookies alheios.

Solução

  1. Configure o servidor para não cachear respostas com Set-Cookie

Adicione Cache-Control: no-store ou Cache-Control: private em páginas dinâmicas.

  1. Configure regras de cache no CDN

No console do CDN, crie regra "Do Not Cache" para páginas dinâmicas (ex: .php, .jsp, /api/) para forçar origin fetch.

  1. Use Modify Inbound Response Headers para remover o cabeçalho

Se Set-Cookie for irrelevante para cache (ex: tracking), use Modify Inbound Response Headers no CDN para removê-lo antes de cachear. Garanta que isso não afete a lógica de negócios.

Operações comuns

Vários cenários compartilham duas operações: atualizar cache e manter lista de permissões de IP de origin fetch.

Quando atualizar o cache:

Após alterar configurações de origin fetch (protocolo, porta, host, SNI, cache, etc.), a mudança vale apenas para novas solicitações. Respostas anormais em cache (403, 404, 301/302) não expiram sozinhas. Recomendamos atualizar após mudanças para evitar concluir erroneamente que "a configuração não funcionou". A distribuição leva alguns minutos.

Escolhendo o método de atualização:

  • Atualização de URL: Para endereço exato conhecido. Limpa cache de um único recurso.

  • Atualização de diretório: Para recursos em um diretório inteiro (ex: site todo com 404 após mudar host).

  • Atualização Regex: Para atualização em massa por padrão de caminho ou extensão.

Para atualizar o site todo, use atualização de diretório na raiz ou a API RefreshObjectCaches com Force = true. Para detalhes e cotas, veja Purge and prefetch resources.

Mantendo a lista de permissões de IP de origin fetch:

Em erros 502, 503, 504 e 403 na origem, a causa frequente é bloqueio de IPs de origin fetch. As faixas mudam periodicamente. Listas desatualizadas causam falhas recorrentes.

Recomendamos sincronizar periodicamente a lista com grupos de segurança, firewalls, WAF e limites de taxa do servidor. Use a API DescribeL2VipsByDomain para obter IPs L2. Integre essa API em tarefas agendadas para atualizar a lista de permissões automaticamente.