Ir para o conteúdo principal

Guias / Corrigir: guias para os erros que aparecem de verdade

Erro 521 da Cloudflare: servidor web fora do ar - causas e correções

O erro 521 da Cloudflare significa que a Cloudflare chegou até o endereço IP da sua origem, mas o servidor recusou a conexão ativamente, geralmente porque não há nada escutando na porta que a Cloudflare tentou usar, um firewall bloqueou a requisição, ou o próprio servidor web está parado. É diferente de um tempo esgotado: algo na origem respondeu "não" de imediato.

O que significa o erro 521

Quando a Cloudflare faz o proxy de uma requisição, ela abre uma conexão TCP com o seu servidor de origem na porta configurada para aquele registro. O erro 521 acontece quando a origem devolve um reset TCP (RST) ou um "connection refused" via ICMP em vez de aceitar a conexão. Isso é uma recusa definitiva, não silêncio. Compare com o erro 522, em que a Cloudflare não recebe resposta alguma dentro da janela de tempo limite, ou o erro 520, em que a conexão é estabelecida, mas a resposta HTTP que vem em seguida está quebrada.

Como o erro 521 aparece

Os visitantes veem a própria página da Cloudflare, "Error 521: web server is down", com um Ray ID. Uma requisição curl contra o domínio devolve o mesmo status:

curl -I https://example.com
HTTP/2 521

Como a origem recusou a conexão na camada de rede, nada chega até a sua aplicação, então os logs da sua aplicação normalmente não mostram nada para as requisições que falharam. A evidência fica mais próxima da rede: os próprios logs de inicialização e acesso do seu servidor web, os logs de conexão do seu firewall ou grupo de segurança, e os logs do sistema no host de origem (journalctl -u nginx, systemctl status nginx, ou o equivalente para a sua stack).

O que causa o erro 521

  • O processo do servidor web está parado ou travou. Não há nada escutando na porta, então qualquer tentativa de conexão é recusada de imediato.
  • A Cloudflare está configurada para acessar a porta errada. Se a porta de origem definida no registro DNS ou nas configurações de rede da Cloudflare não corresponder ao que o seu servidor realmente escuta, toda conexão é recusada.
  • Um firewall ou grupo de segurança na nuvem está bloqueando as faixas de IP da Cloudflare. Se a regra permite apenas IPs de origem específicos e as faixas publicadas pela Cloudflare não estão nela, ou estavam e foram removidas depois, as conexões vindas da borda da Cloudflare são descartadas ou rejeitadas.
  • O modo SSL/TLS está definido como Full ou Full strict, mas nada escuta na porta 443 na origem. Esses modos exigem que a Cloudflare se conecte à origem via HTTPS; se a origem só serve HTTP puro, ou a configuração do certificado nunca foi concluída, a tentativa de conexão HTTPS é recusada.
  • Um serviço não relacionado já está ocupando a porta que o servidor web espera usar, então o servidor web em si nunca chega a iniciar.

521 vs 523 vs 522

Esses três códigos são fáceis de confundir porque todos descrevem uma conexão que nunca produziu uma resposta HTTP, mas cada um representa um estágio diferente em que a Cloudflare falhou.

  • 521, servidor web fora do ar: a Cloudflare chegou até o endereço IP da origem, e algo ali recusou a conexão de forma ativa (um reset TCP ou um ICMP inalcançável). O servidor existe e respondeu, só que com uma recusa.
  • 523, origem inalcançável: a Cloudflare nem chegou a esse ponto. Isso aponta para um problema de roteamento, DNS ou IP, comumente um registro DNS na Cloudflare ainda apontando para um IP antigo depois de uma migração de servidor, ou uma rota de rede privada (como um Cloudflare Tunnel) fora do ar.
  • 522, tempo de conexão esgotado: a Cloudflare tentou o handshake TCP, mas não recebeu resposta a tempo, nem uma aceitação nem uma recusa. Veja o guia específico sobre o erro 522 da Cloudflare para esse caso.

Como saber de quem é a culpa

Um 521 é um forte indício de que o problema está do lado da origem em relação à borda da Cloudflare, já que a recusa veio do seu próprio servidor ou da rede diretamente na frente dele. A pergunta que importa na prática é se isso afeta o site inteiro ou só uma parte do tráfego, e a forma mais rápida de descobrir é rodar uma verificação HTTP a partir de vários locais ao mesmo tempo. A verificação HTTP da HostTracker consulta o domínio a partir de pontos de verificação em vários países e reporta cada resultado separadamente, então você consegue ver de imediato se todos os locais recebem o mesmo 521 ou só alguns, o que apontaria para uma regra de firewall parcial ou um balanceador de carga com um backend com problema, em vez do servidor inteiro estar fora do ar.

Como corrigir o erro 521

Se você é um visitante

  1. Recarregue depois de uma pequena espera. Se quem administra o site estiver reiniciando o servidor, a correção pode já estar em andamento.
  2. Verifique a página de status do site, se existir, ou as redes sociais dele, em busca de um aviso de interrupção conhecida.
  3. Não há nada para mudar do seu lado. A recusa acontece no próprio servidor do site, não no seu navegador, no seu DNS ou no seu provedor de internet.

Se você administra o site

  1. Confirme se o processo do servidor web está realmente rodando: systemctl status nginx (ou o equivalente), e verifique os logs dele em busca de uma falha ou um reinício malsucedido.
  2. Confirme se a porta que a Cloudflare está configurada para usar corresponde ao que o seu servidor escuta. Verifique a porta de origem no registro DNS ou nas configurações de rede no painel da Cloudflare contra as portas que o seu servidor realmente escuta (ss -tlnp no Linux).
  3. Verifique se o seu firewall ou grupo de segurança na nuvem permite tráfego de entrada vindo das faixas de IP publicadas pela Cloudflare naquela porta. A Cloudflare publica as faixas IPv4 e IPv6 atuais em cloudflare.com/ips; uma regra construída a partir de uma cópia antiga dessa lista vai começar a rejeitar novas faixas conforme elas forem adicionadas.
  4. Se o seu modo de criptografia SSL/TLS for Full ou Full strict, confirme se realmente há algo escutando na porta 443 na origem, com um certificado que a Cloudflare consiga validar. Trocar temporariamente para Flexible é um bom passo de diagnóstico para confirmar que essa é a causa, não uma correção permanente, já que o Flexible deixa a conexão entre a Cloudflare e a sua origem sem criptografia.
  5. Contorne a Cloudflare para testar a origem diretamente e ver a recusa bruta sem a camada de borda no meio:
    curl -v -H "Host: example.com" https://ORIGIN_IP:PORT/
    Um "Connection refused" aqui confirma que o problema está no listener ou no firewall da origem, não na Cloudflare.
  6. Verifique se nenhum outro processo no host ocupou a porta que o seu servidor web espera usar, o que impediria o servidor web de se conectar a ela na inicialização.

Como prevenir

Uma regra de firewall que só permite as faixas da Cloudflare é uma forma comum do erro 521 voltar a aparecer meses depois, já que a Cloudflare adiciona e aposenta faixas de IP com o tempo, e uma regra copiada uma única vez fica desatualizada. Uma verificação HTTP que roda fora da sua rede detecta a interrupção resultante da mesma forma que um visitante viveria, em vez de depender de alguém perceber que o site está inacessível e reportar isso.

Erros relacionados

Perguntas frequentes

O erro 521 é o mesmo que o servidor estar fisicamente desligado?

Não necessariamente. Ele significa que algo recusou a conexão TCP, o que pode ser o processo do servidor web parado enquanto a máquina em si continua ligada, um firewall rejeitando a requisição, ou uma incompatibilidade de modo TLS, além do servidor realmente estar fora do ar.

Qual a forma mais rápida de confirmar que um firewall é a causa?

Consulte a origem diretamente pelo endereço IP e pelo cabeçalho Host do domínio, contornando a Cloudflare. Se isso também for recusado, o bloqueio provavelmente está no próprio firewall ou grupo de segurança da origem, e não em algo específico das faixas de IP da Cloudflare.

Por que o erro 521 começaria a aparecer sem nenhuma mudança no meu servidor?

A Cloudflare atualiza periodicamente as faixas de IP que publica. Uma regra de firewall construída a partir de uma cópia antiga dessa lista para de reconhecer as faixas adicionadas recentemente, então as requisições vindas dessas faixas são recusadas mesmo que nada tenha mudado no seu próprio servidor.

Trocar o modo SSL/TLS para Flexible corrige o erro 521 de forma permanente?

Pode mascarar uma incompatibilidade com o modo Full ou Full strict, já que o Flexible não exige HTTPS na origem, mas também significa que a conexão entre a Cloudflare e o seu servidor fica sem criptografia. Trate isso como um passo de diagnóstico e depois corrija o listener TLS da origem e volte ao modo anterior.

Qual a diferença entre 521 e 523?

O 521 significa que a Cloudflare chegou até a origem e foi recusada. O 523 significa que a Cloudflare nem conseguiu chegar até ela, o que aponta para DNS, roteamento ou um túnel quebrado, e não para algo que o próprio servidor de origem tenha feito.

Verificar agora

Faça a verificação gratuita no seu próprio site, sem precisar de conta.

HTTP check

Monitorar permanentemente

Seja avisado no momento em que algo quebrar: o HostTracker verifica de mais de 300 localidades e notifica você por e-mail, SMS, Slack, Telegram e mais.

Recursos do HostTracker

Mais nesta seção: Corrigir: guias para os erros que aparecem de verdade