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.
| Classe | 4xx/5xx, Códigos não oficiais (nginx, Cloudflare) |
|---|---|
| Definido em | Cloudflare docs: Error 520 |
| Pode ir para o cache por padrão | Só 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 pedido | Uma vez; se repetir, a origem está enviando algo que a Cloudflare não consegue usar |
| Cabeçalhos relevantes |
|
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ê.
# 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/pageCostuma 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.