Ao acessar um domínio acelerado pelo Alibaba Cloud CDN, o navegador exibe o erro ERR_TOO_MANY_REDIRECTS. Esse problema ocorre quando o CDN e o servidor de origem entram em um loop de redirecionamento. Este tópico descreve como identificar a causa e resolver o problema.
"Esta página não está funcionando. example.com redirecionou você muitas vezes. (Erro: ERR_TOO_MANY_REDIRECTS)"

Duas configurações incorretas no CDN costumam causar esse erro:
Causa 1: Porta do servidor de origem definida como 80 enquanto a origem possui redirecionamentos HTTPS
Causa 2: Política de protocolo de origem definida como HTTP
Identifique qual cenário se aplica à sua configuração, aplique a correção correspondente e limpe ambos os caches.
Como o loop de redirecionamento ocorre
Por padrão, o CDN busca conteúdo na origem via HTTP, mesmo quando a requisição do cliente chega via HTTPS. Se a origem tiver regras de redirecionamento de HTTP para HTTPS, ela retornará um redirecionamento 301 ou 302 ao CDN. O CDN então fará outra requisição HTTP, e o ciclo se repetirá até que o limite de redirecionamentos do navegador seja excedido.
O cenário mais comum é:
Um cliente envia uma requisição HTTPS (porta 443) para o domínio acelerado, como
https://example.alibabacloud.com/.O CDN busca conteúdo no servidor de origem via HTTP (porta 80) por padrão e requisita
http://example.alibabacloud.com/.O servidor de origem tem regras de redirecionamento de HTTP para HTTPS configuradas e retorna um código de status 301 ou 302 apontando para a URL HTTPS.
O cliente segue o redirecionamento e envia uma nova requisição HTTPS. O CDN novamente busca o conteúdo via HTTP na origem.
Esse ciclo se repete até que o limite de redirecionamentos do navegador seja atingido.
Corrigir o loop de redirecionamento
Verifique qual causa se aplica à sua configuração e aplique a solução correspondente.
Causa 1: Porta do servidor de origem definida como 80 enquanto a origem possui redirecionamentos HTTPS
Esta é a causa mais frequente. O CDN busca conteúdo via HTTP (porta 80) e o servidor de origem redireciona as requisições HTTP para HTTPS, criando o loop.
Solução: Alterar a porta do servidor de origem para 443
Faça login no CDN console.
No painel de navegação à esquerda, clique em Domain Names.
Localize o domínio desejado e clique em Manage na coluna Actions.
Na seção Origin Information, clique em Edit.
Altere a porta para
443e clique em OK.
Causa 2: Política de protocolo de origem definida como HTTP
Se a Origin Protocol Policy estiver ativada e definida como HTTP, o CDN sempre enviará requisições HTTP para a origem, mesmo quando o cliente usar HTTPS. Combinado com um redirecionamento de HTTP para HTTPS na origem, isso cria o mesmo loop.
Ignore esta seção se a Origin Protocol Policy não estiver ativada para o seu domínio.
Solução: Definir a política de protocolo de origem como HTTPS
Faça login no CDN console.
No painel de navegação à esquerda, clique em Domain Names.
Localize o domínio desejado e clique em Manage na coluna Actions.
Na árvore de navegação à esquerda, clique em Origin Fetch.
Na aba Configurations, localize Origin Protocol Policy e clique em Configure.
Defina o tipo de protocolo como HTTPS e clique em OK.
Quando definido como HTTPS, o CDN sempre buscará conteúdo na origem via HTTPS, independentemente do protocolo usado pelo cliente. Isso interrompe o loop de redirecionamento mesmo quando os clientes usam HTTP.
Não defina o tipo de protocolo para seguir o protocolo do cliente. Essa opção espelha o protocolo da requisição do cliente. Se o cliente enviar uma requisição HTTP, o CDN buscará na origem via HTTP, o que não resolve o loop quando a origem impõe redirecionamentos de HTTP para HTTPS.
Limpar redirecionamentos em cache
Após aplicar a correção, purgue o cache do CDN e o cache do navegador. Os nós do CDN e o navegador podem ter armazenado a resposta de redirecionamento 301 ou 302 em cache e continuarão a reproduzi-la, mesmo depois da atualização da configuração do CDN, até que esses caches sejam limpos.
Purgar o cache do CDN
Faça login no console do Alibaba Cloud CDN.
No painel de navegação à esquerda, clique em Purge and Prefetch.
Defina Operation como Purge e Operation Method como Directory.
Insira a URL base do seu domínio. A URL deve começar com
https://ouhttp://e terminar com/. Por exemplo, se o domínio acelerado forhttps://www.example.com/image/static/1.png, insirahttps://www.example.com/.Clique em Submit.
Verifique o progresso na aba Records.
Limpar o cache do navegador
Os navegadores armazenam respostas de redirecionamento 301 e 302 em cache e as reproduzem localmente, ignorando completamente o CDN. Limpe o cache do navegador após corrigir a configuração do CDN.
Exemplo usando o Chrome:
Clique no ícone Mais
>
Delete Browsing Data.Selecione um intervalo de tempo, como Last hour ou All time.
Selecione Cached images and files (obrigatório).
Clique em Delete data.
Verificar a correção
Use um dos métodos abaixo para confirmar a resolução do loop de redirecionamento:
-
curl: Execute o comando a seguir e verifique se a resposta contém um cabeçalho
Location. Se o cabeçalhoLocationestiver ausente, o problema foi resolvido. Substituahttps://www.example.com/pelo seu domínio acelerado.curl -I https://www.example.com/ Modo anônimo: Abra uma nova janela de navegação anônima ou privada e acesse o domínio acelerado. Uma janela anônima não possui redirecionamentos em cache, portanto o resultado reflete a configuração atual do CDN.