Você abre um site e aparece uma página branca quase vazia: "502 Bad Gateway" em letras grandes e a palavra "nginx" embaixo. Em outro site, a página tem o título "Proxy Error" e diz que o servidor proxy recebeu uma resposta inválida de um servidor upstream. Atrás do Cloudflare, ela parece mais amigável: três ícones em fila, e o último, "Host", marcado com "Error".
Os três são o mesmo código de status HTTP e, na maioria dos casos, não há nada errado do seu lado. A seguir: o que "gateway" e "upstream" significam, como ler cada versão da página, o que você pode tentar como visitante, como o dono de um site encontra a causa nos logs e o que significa um 502 vindo do seu próprio proxy.
O que significa 502 Bad Gateway?
A maioria dos sites não é um único computador. O endereço que você digita costuma levar a um servidor da frente: um reverse proxy como nginx ou Apache, um balanceador de carga ou uma CDN (rede de distribuição de conteúdo, um serviço que responde por um site a partir de muitos locais) como o Cloudflare. O servidor da frente não monta a página. Ele repassa a sua requisição ao servidor por trás dele, onde roda a aplicação do site, e devolve a resposta. Forward proxy e reverse proxy: qual é a diferença? explica essa configuração.
O padrão HTTP chama o servidor da frente de gateway e o de trás de servidor upstream. A RFC 9110 define o 502 em uma frase: um servidor que atua como gateway ou proxy recebeu uma resposta inválida do servidor por trás dele. "Inválida" inclui uma conexão recusada, uma conexão que caiu no meio e uma resposta que o gateway não conseguiu ler.
O erro 502 é culpa sua?
Quase nunca. A sua conexão entregou a requisição ao servidor da frente do site; a falha aconteceu depois, entre duas máquinas que pertencem ao site. A exceção é uma VPN, um proxy ou uma extensão de VPN: eles buscam as páginas por você, então também são um gateway, e quando não conseguem uma resposta utilizável do site podem mostrar um 502 próprio.
Como um erro 502 acontece, passo a passo?
- O seu navegador encontra o servidor da frente. O DNS, a agenda de endereços da internet, devolve o endereço da CDN ou do reverse proxy, não o da aplicação.
- O servidor da frente aceita a sua requisição e a encaminha ao servidor upstream, ou seja, à aplicação: um processo PHP, um app Node.js ou um entre vários servidores de um grupo.
- O servidor upstream falha. Ele recusa a conexão porque não está rodando, desliga no meio do caminho ou envia algo que não é HTTP válido.
- O gateway responde 502. Se o servidor upstream só estava lento e o gateway parou de esperar, o código costuma ser 504.
- O seu navegador mostra a página de erro do gateway, ou uma página própria se o gateway enviou uma vazia.
Como é a página de erro 502 e quem a envia?
A aparência da página diz qual programa desistiu. O Chrome e o Edge mostram a própria página só quando o gateway envia um 502 sem página de erro.
| O que você vê | Quem envia | Significado comum |
|---|---|---|
| "502 Bad Gateway", "nginx" embaixo | nginx, o reverse proxy do site | A aplicação por trás do nginx está fora do ar ou travou |
| "Proxy Error … received an invalid response from an upstream server", "Reason: Error reading from remote server" | Apache httpd | O backend desligou ou passou do timeout de proxy do Apache |
| "Error 502, Bad gateway", ícones de Browser, Cloudflare e Host, "Host: Error", um Ray ID | Cloudflare | O próprio servidor do site falhou; o Cloudflare funciona |
| Error 520 | Cloudflare | O servidor do site enviou uma resposta vazia ou estranha |
| Error 521 | Cloudflare | O servidor do site recusou a conexão |
| Error 522 | Cloudflare | A conexão com o servidor do site esgotou o tempo |
| Error 523 | Cloudflare | Não há rota até o servidor do site |
| Error 524 | Cloudflare | O servidor do site não devolveu nada a tempo |
| "Esta página não está funcionando", "HTTP ERROR 502" | Chrome ou Edge | Um 502 vazio, sem detalhes |
A linha "Reason" do Apache dá nome à falha exata. O mesmo título "Proxy Error" com "Error during SSL Handshake with remote server" vem com o status 500: o Apache não conseguiu estabelecer a conexão criptografada com o backend. O Cloudflare explica cada um dos seus códigos no guia de erros 5xx (no 524, ele espera 125 segundos por padrão); todos são problemas entre o Cloudflare e o servidor do site.
Qual é a diferença entre 502, 503 e 504?
| Código | Nome | O que aconteceu | Quem resolve |
|---|---|---|---|
500 | Internal Server Error | A própria aplicação encontrou um erro | O dono do site |
502 | Bad Gateway | O gateway recebeu uma resposta quebrada, ou nenhuma | O dono do site |
503 | Service Unavailable | Sobrecarga ou manutenção programada | Normalmente, o tempo |
504 | Gateway Timeout | O gateway esperou demais | O dono do site |
A RFC 9110 define o 504 nos mesmos termos de gateway: "uma resposta inválida" contra "nenhuma resposta a tempo". Para o visitante, o conselho é o mesmo nos três casos. Para o dono, o 502 aponta para uma aplicação parada ou com defeito, e o 504, para uma aplicação lenta. Um detalhe: quando o Apache não consegue se conectar ao backend, ele responde 503.
O que você pode fazer como visitante?
- Espere um minuto e recarregue. Muitos 502 duram só o tempo de uma aplicação reiniciar, por exemplo durante uma atualização. Pressione F5 ou o botão Recarregar da página de erro do Chrome; uma ou duas vezes bastam.
- Veja se o site caiu para todo mundo. Abra o site no celular pelos dados móveis em vez do Wi-Fi. Se falhar lá também, o problema é do site; muitos serviços anunciam quedas em uma página de status.
- Desligue a sua VPN ou o seu proxy. Desligue o app de VPN, a extensão de VPN ou o proxy e recarregue. No Chrome, as extensões ficam em Mais > Extensões > Gerenciar extensões (os passos do Google). Se a página carregar agora, o servidor da VPN era o gateway que falhou. Não sabe se há um proxy configurado? Servidor proxy não está respondendo mostra onde olhar.
- Se o site mudou de servidor há pouco, consulte o endereço de novo. Raramente, o seu computador ainda guarda um endereço antigo de um site que trocou de hospedagem. Reiniciar o computador, ou limpar o cache de DNS como em O que é DNS e como mudar o seu servidor DNS?, traz o novo.
- Avise o site. Envie o horário, o endereço exato e o texto da página; em uma página do Cloudflare, inclua o Ray ID.
Limpar os cookies e o cache não ajuda: pelo padrão HTTP, o navegador não guarda um 502 para reutilizar, a menos que o servidor permita isso explicitamente.
Se o site é seu: o que causa um erro 502?
O visitante vê uma linha; o log de erros (error log) do seu gateway guarda o motivo. No nginx, a linha error_log do nginx.conf indica o arquivo, e os pacotes Linux do próprio nginx gravam em /var/log/nginx/error.log (error_log). O Apache chama o seu log de erros de o primeiro lugar para olhar; o Debian e o Ubuntu o mantêm em /var/log/apache2/error.log, e o Fedora e o RHEL, em /var/log/httpd/error_log. Procure o minuto em que o 502 apareceu.
| Linha do log do nginx | O que significa | O que verificar |
|---|---|---|
connect() failed (111: Connection refused) while connecting to upstream | Nada escuta no endereço do upstream | O app está rodando na porta do proxy_pass? |
connect() to unix:… failed (2: No such file or directory) | O arquivo de socket da configuração não existe | O caminho do socket, por exemplo depois de atualizar o PHP |
upstream prematurely closed connection while reading response header from upstream | O app aceitou a requisição e caiu | O log do próprio app, limites de memória |
upstream sent too big header while reading response header from upstream | Os cabeçalhos não couberam no buffer do nginx | Cookies grandes; proxy_buffer_size |
no live upstreams while connecting to upstream | Todos os servidores do grupo estão marcados como falhos | O bloco upstream |
upstream timed out (110: Connection timed out) | O app foi lento demais | Um 504; proxy_read_timeout |
No código-fonte do nginx, um tempo esgotado vira 504, e qualquer outra falha do servidor upstream, 502. Uma resposta cuja primeira parte não cabe em proxy_buffer_size é considerada inválida, e é por isso que cookies grandes demais terminam em 502. E 11: Resource temporarily unavailable em um socket Unix significa que a fila dele está cheia: a aplicação está sobrecarregada, não parada.
Outras causas comuns:
- "Error reading from remote server" no Apache. O backend fechou a conexão ou ficou em silêncio além do
ProxyTimeout, que por padrão é igual aoTimeoutdo servidor (mod_proxy). Ao contrário do nginx, o Apache mostra um backend lento como 502. - Keep-alive desencontrado. Os gateways mantêm abertas as conexões com o backend para reutilizá-las (keep-alive). Se a aplicação fecha conexões ociosas antes do que o gateway espera, uma requisição enviada por uma conexão que acabou de ser fechada falha. A AWS cita isso entre as causas de 502 do seu balanceador de carga e recomenda um keep-alive mais longo que o timeout de inatividade do balanceador.
- Um firewall bloqueia a CDN. Atrás de uma CDN, todo visitante chega pelos endereços da CDN, e um plugin de segurança pode confundi-los com um ataque. O Cloudflare informa isso como 521 ou 522 e publica as suas faixas de IP em cloudflare.com/ips.
- Deploys. Uma versão nova que reinicia a aplicação gera erros 502 até ela voltar; reiniciar um servidor de cada vez fecha essa lacuna.
Timeouts maiores não curam uma aplicação que caiu, então corrija primeiro o servidor upstream. Erros repetidos também chegam à busca: os rastreadores do Google desaceleram diante de erros de servidor, e URLs que continuam a retorná-los acabam removidas do índice. Um monitoramento que verifica a cada minuto avisa você antes. Faça essas verificações pelas saídas dos Proxies ISP em alguns países e você vê se só uma região da CDN falha, com verificações vindas de endereços fixos que você pode liberar no seu firewall.
O que significa um 502 vindo do seu próprio proxy?
Quando um scraper, uma ferramenta de monitoramento ou um app envia tráfego por um proxy, existe um segundo gateway na cadeia: o seu. Quando um forward proxy não consegue chegar ao site, muitos proxies respondem com um 502 próprio, e o site nunca vê a requisição. Os dois casos têm cara diferente:
- O 502 do proxy responde à requisição que abre o túnel, antes de qualquer página chegar. O curl mostra
CONNECT tunnel failed, response 502; o Requests, do Python, lança umProxyErrorcomTunnel connection failed: 502 Bad Gateway(Max Retries Exceeded With URL: o que é e como resolver desmonta essa mensagem). - O 502 do site chega por um túnel que funciona, com a página de erro e os cabeçalhos do próprio site.
O que fazer, em ordem:
- Abra a mesma URL sem o proxy. Se falhar também, o site está fora do ar; tente mais tarde.
- Confira o host e a porta no seu código. Um erro de digitação falha no proxy toda vez.
- Tente de novo algumas vezes, com pausas cada vez maiores, e depois pare. Códigos de status HTTP no web scraping, na seção "502, 504 e erros de conexão", lista quais códigos vale a pena tentar de novo.
- Se a URL funciona sem o proxy, mas falha por uma saída, inicie uma nova sessão. Com os Proxies residenciais, uma nova sessão traz um novo IP de saída e outra rota.
Um 502 é uma conexão que falhou, não um bloqueio: se o site responde com 429 ou com uma página de bloqueio, diminua o ritmo em vez de trocar de endereço. E se um site começar a retornar erros 502 enquanto o seu crawler roda, o seu tráfego pode fazer parte da carga; reduza o número de requisições em paralelo.
Nível avançado: veja quem enviou o 502 com um comando
Esta parte é para quem está à vontade com a linha de comando. O curl vem com o Windows 10, o Windows 11 e o macOS; no Windows PowerShell, digite curl.exe.
curl -sSI https://example.com-I pede só os cabeçalhos; -sS esconde a barra de progresso, mas mantém as mensagens de erro. Para passar pelo seu proxy, acrescente -x http://user:pass@pr.proxynet.io:8000 antes do endereço. Rodamos o comando em uma configuração de teste no nosso próprio computador (curl 8.21.0, Windows 11). Um gateway cuja aplicação foi desligada:
HTTP/1.1 502 Bad Gateway
Content-Type: text/html
Content-Length: 112Com -x, um proxy de teste instruído a chegar a uma porta onde nada escutava:
HTTP/1.1 502 Bad Gateway
curl: (7) CONNECT tunnel failed, response 502A primeira linha é o status. Em um site real, um cabeçalho server: costuma nomear o programa que respondeu (cloudflare, nginx, Apache). A linha CONNECT tunnel failed só aparece quando o 502 foi gerado pelo seu próprio proxy.
Onde você pode encontrar um erro 502
- Sites atrás do Cloudflare, onde ele aparece ao lado das páginas de bloqueio e de verificação do Cloudflare (Sorry, you have been blocked: o que é e por que aparece).
- Uma extensão de VPN ou a VPN do Opera, cujos servidores atuam como gateway para cada página (Como resolver err_tunnel_connection_failed no Chrome e Edge).
- Um site que não responde de jeito nenhum, que é outra tela (Não é possível acessar esse site: o que é e por que acontece).
- Verificações de disponibilidade do seu próprio site, que pegam um 502 em até um minuto (O que é o Uptime Kuma?).
Erros comuns
- Limpar os cookies e o cache várias vezes. O 502 acontece do lado do servidor.
- Reiniciar o roteador ou recarregar a cada segundo. A sua conexão entregou a requisição, e recargas extras só aumentam a carga.
- Donos de sites: aumentar os timeouts para esconder os 502. No nginx, um 502 significa que a aplicação recusou a conexão, caiu ou respondeu errado.
- Donos de sites: bloquear os endereços da CDN com um firewall ou um plugin de segurança.
- Usuários de proxy: culpar o proxy antes de testar a URL sem ele.
Guia de decisão
| A sua situação | O que fazer |
|---|---|
| Uma página "502 Bad Gateway", outros sites funcionam | Espere um minuto e recarregue |
| Também falha nos dados móveis | O site caiu; veja a página de status dele |
| Carrega com a VPN ou o proxy desligado | Escolha outra localização da VPN ou verifique o proxy |
| Página do Cloudflare com "Host: Error" | Envie o Ray ID e o horário ao site |
| O seu site, o nginx diz "Connection refused" | Inicie a aplicação e verifique a porta do proxy_pass |
| O seu site, o Apache diz "Error reading from remote server" | Verifique o backend e depois o ProxyTimeout |
| O seu script mostra "CONNECT tunnel failed, response 502" | Teste sem o proxy e depois inicie uma nova sessão |
Perguntas frequentes
Quanto tempo dura um erro 502 Bad Gateway?
Não há um tempo fixo. Um reinício ou uma atualização causa erros 502 por segundos ou minutos; uma aplicação que caiu sem ninguém perceber pode retorná-los por horas.
Uma VPN ou um proxy pode causar um erro 502?
Sim. Um servidor de VPN ou um proxy busca as páginas por você; quando não consegue chegar a um site, ele mesmo pode responder com um 502. Desligue-o e recarregue; se a página carregar, escolha outra localização.
O que significa "Proxy Error: The proxy server received an invalid response from an upstream server"?
É a página 502 do Apache. O Apache roda na frente do site como reverse proxy, e a aplicação por trás dele desligou ou não respondeu a tempo. É o proxy do site, não um proxy no seu computador.
Um 502 é o mesmo que um 504?
Não, mas eles são próximos: no 502 o gateway recebeu uma resposta inválida; no 504, nenhuma resposta a tempo. O nginx usa o 504 para tempos esgotados, enquanto o Apache também mostra um backend lento como 502.
Um erro 502 prejudica o ranking de um site no Google?
Uma queda curta faz pouca diferença. Os rastreadores do Google desaceleram diante de erros de servidor, e URLs que os retornam por muito tempo acabam saindo do índice.
Por que o 502 aparece só em algumas páginas, ou só às vezes?
Uma página pesada, como uma busca, pode derrubar a aplicação; um servidor do grupo pode estar com problema; ou um keep-alive desencontrado quebra uma requisição aleatória. Compare os horários do log de erros com os endereços solicitados.
Em resumo
Um 502 Bad Gateway significa que o servidor da frente do site recebeu uma resposta quebrada, ou nenhuma, do servidor por trás dele. Como visitante, espere e recarregue, teste outra rede, desligue VPNs e proxies e informe o horário e o Ray ID se o erro continuar. Como dono do site, leia o log de erros do gateway. Como usuário de proxy, primeiro diferencie o 502 do seu proxy do 502 do site. Você pode comparar tipos de proxy para scraping e monitoramento na nossa página de proxies.




