Skip to content

Código de status HTTP · Não oficial, usado por Cloudflare

Erro 520 Web Server Returns an Unknown Error

O erro 520 é a Cloudflare dizendo que o servidor de origem devolveu uma resposta vazia, desconhecida ou inesperada. A causa mais comum é o processo da origem travar ou resetar a conexão no meio da resposta, seguida de cabeçalhos maiores do que a Cloudflare aceita.

Dados sobre este código de status
Classe4xx/5xx, Códigos não oficiais (nginx, Cloudflare)
Definido emCloudflare docs: Error 520
Pode ir para o cache por padrãoSó com Cache-Control ou Expires explícitos; os TTLs padrão da borda da Cloudflare só cobrem 200, 206, 301, 302, 303, 404 e 410, então um 52x não fica em cache por padrão
Pode repetir o pedidoUma vez; se repetir, a origem está enviando algo que a Cloudflare não consegue usar
Cabeçalhos relevantes
  • CF-RAY: ID do pedido mostrado na página de erro; informe ao suporte da Cloudflare

O que significa o 520

A Cloudflare usa o 520 como categoria geral: a conexão TCP com a origem funcionou, mas o que voltou não era uma resposta HTTP válida para repassar. A documentação cita crash da origem, firewall ou plugin de segurança cortando a Cloudflare no meio, cabeçalhos de resposta acima de 128 KB (muitas vezes por excesso de cookies), resposta sem linha de status, HTTP/2 mal configurado na origem e Authenticated Origin Pull ativado sem a origem aceitar o certificado de cliente.

Como a categoria é ampla, o primeiro passo útil é repetir o pedido direto contra a origem. Se o curl no IP da origem recebe uma resposta normal, compare cabeçalhos e protocolo; se recebe "Empty reply from server" ou um reset, o problema está dentro do seu servidor.

Causas comuns

Se você está visitando o site

  • O próprio servidor do site está falhando atrás da Cloudflare. Seu navegador, sua rede e a Cloudflare estão funcionando; a página mostra que o erro está no host.

Se você administra o servidor

  • O processo da aplicação (PHP-FPM, Node, Gunicorn) caiu ou foi morto pelo OOM killer enquanto escrevia a resposta.
  • Cabeçalhos de resposta acima de 128 KB, geralmente um loop de Set-Cookie ou um cookie de sessão ou CSP gigante.
  • A origem anuncia HTTP/2 via ALPN mas não trata o protocolo direito.
  • Um plugin de segurança ou firewall reseta conexões dos IPs da Cloudflare depois que elas começam.

Como resolver

Se você está visitando o site

  • Espere um minuto e recarregue. Se continuar, avise o dono do site e mande o Ray ID que aparece no rodapé da página de erro.

Se você administra o servidor

  • Peça a página direto para a origem (curl --resolve, abaixo) e leia os logs de erro da aplicação e do servidor web nos horários dos 520.
  • Meça o tamanho dos cabeçalhos da resposta; enxugue cookies e cabeçalhos grandes para ficar abaixo de 128 KB.
  • Se a origem fala HTTP/2, teste esse caminho, ou desligue o HTTP/2 to Origin no painel da Cloudflare (Speed, Protocol Optimization) para confirmar.
  • Confira se nenhuma regra de firewall ou plugin limita ou reseta as faixas de IP da Cloudflare.

Como diagnosticar o 520

Quem gera este código é a Cloudflare, na borda, quando não consegue uma resposta utilizável da sua origem; o seu servidor nunca o envia. Os comandos abaixo falam direto com a origem, sem passar pela Cloudflare, para você ver o que ela vê.

Terminal
# Hit the origin directly, skipping Cloudflare (replace ORIGIN_IP)
curl -sv -o /dev/null --resolve example.com:443:ORIGIN_IP https://example.com/page

# Size of the response headers in bytes (Cloudflare's limit is 128 KB)
curl -s -D - -o /dev/null --resolve example.com:443:ORIGIN_IP https://example.com/page | wc -c

# Same request forcing HTTP/2 to the origin
curl -sv --http2 -o /dev/null --resolve example.com:443:ORIGIN_IP https://example.com/page

Costuma ser confundido com

520 vs 502
O 502 é o erro genérico de resposta inválida do upstream, de qualquer gateway; o 520 é o rótulo da própria Cloudflare para a mesma situação quando o upstream é a sua origem e a resposta veio vazia ou irreconhecível.
520 vs 521
No 521 a origem recusou a conexão logo de cara; no 520 ela aceitou a conexão e depois devolveu algo inutilizável.

Perguntas frequentes

O erro 520 é culpa da Cloudflare?
Quase nunca. A Cloudflare chegou na sua origem e recebeu uma resposta que não dava para usar. A correção é na origem: logs, tamanho dos cabeçalhos, HTTP/2 ou firewall.
Qual limite de cabeçalho causa o erro 520?
A Cloudflare documenta 128 KB para os cabeçalhos de resposta. Os sites costumam estourar isso com muitos ou enormes cabeçalhos Set-Cookie.
Por que o erro 520 acontece só em algumas páginas?
Um 520 restrito a certas páginas costuma significar que aquela rota derruba a aplicação, cria cookies ou cabeçalhos grandes demais ou segue um caminho que fecha a conexão cedo. Reproduza a mesma URL direto na origem.
O que mandar para o suporte da Cloudflare sobre um 520?
A URL completa, o Ray ID da página de erro, a saída de /cdn-cgi/trace no seu domínio e dois arquivos HAR: um com a Cloudflare ativa e outro com ela pausada.

Revisado em por Arielton Oberek.