Análise PCAP de tempo limite de gateway HTTP 502 e 504: proxy, balanceador de carga, upstream ou rede?
Como diagnosticar HTTP 502 Bad Gateway e 504 Gateway Timeout com capturas de pacotes, incluindo TCP de proxy para upstream, TLS, tempo de solicitação, redefinições de back-end e respostas paralisadas.
Os erros HTTP 502 Bad Gateway e 504 Gateway Timeout são sintomas da camada proxy. Um navegador ou cliente API vê a resposta do proxy, mas o problema real pode estar entre o proxy e o servidor upstream, dentro do aplicativo upstream, na negociação TLS, na acessibilidade do TCP ou na política de tempo limite. Os usuários procuram por "análise 502 pcap", "captura de pacote de tempo limite de gateway 504", "redefinição upstream de proxy", "tempo limite do balanceador de carga Wireshark" e "solução de problemas de rede de gateway ruim" quando os logs não são suficientes.
A cirurgia PCAP é útil porque as falhas de proxy precisam da história do pacote em ambos os lados, se possível: cliente para proxy e proxy para upstream.
O que 502 geralmente significa
502 Bad Gateway geralmente significa que o proxy recebeu uma resposta inválida, incompleta ou com falha do upstream. As causas incluem:
- Redefinição de TCP upstream.
- Falha de handshake TLS upstream.
- Conexão encerrada antecipadamente.
- Proxy conectado à porta errada.
- O back-end retornou HTTP malformado.
- O balanceador de carga não tinha upstream íntegro.
- Incompatibilidade de protocolo, como HTTPS esperado, mas HTTP enviado.
O cliente vê apenas o 502 do proxy. O rastreamento do pacote pode mostrar o que aconteceu no upstream.
O que 504 geralmente significa
504 Gateway Timeout geralmente significa que o proxy encaminhou a solicitação, mas não recebeu uma resposta upstream completa antes do tempo limite.
As causas incluem:
- Aplicativo upstream lento.
- Conexão TCP para travamentos upstream.
- O servidor aceita conexão, mas nunca responde.
- Grande resposta bloqueada por MTU ou perda de pacotes.
- Atraso de banco de dados ou dependência atrás do upstream.
- Tempo limite do proxy muito curto.
- Tempo limite de inatividade do firewall ou NAT.
A principal evidência é o momento: quando o proxy enviou a solicitação upstream e quando desistiu.
Posicionamento de captura
A melhor evidência vem de:
- Lado do cliente: vê 502/504 final.
- Interface voltada para o cliente do lado proxy.
- Interface voltada para upstream do lado proxy.
- Lado do servidor upstream.
Se você capturar apenas no cliente, poderá provar que o proxy retornou 502/504, mas não por quê. Se você capturar no proxy, poderá inspecionar o comportamento do upstream.
TCP e TLS antes de HTTP
Antes de diagnosticar HTTP, verifique:
- O proxy estabeleceu o TCP para o upstream?
- O handshake TLS foi concluído?
- O SNI correspondeu às expectativas do upstream?
- O upstream foi redefinido?
- Os pacotes foram retransmitidos?
Se o TCP ou o TLS falhar, o status do HTTP poderá ser apenas a tradução do proxy de falha de nível inferior.
Solicitação enviada, sem resposta
Para 504, procure:
Proxy -> Upstream: HTTP request
No upstream response for timeout interval
Proxy -> Client: HTTP/1.1 504 Gateway Timeout
If upstream later responds after the proxy timeout, the application is slow or timeout is too short. If upstream never sees the request, routing or proxy-to-upstream path is suspect.
Checklist
Use this workflow:
- Identify client, proxy, and upstream.
- Capture both sides of proxy if possible.
- Confirm final status returned to client.
- Inspect proxy-to-upstream TCP handshake.
- Inspect TLS handshake if HTTPS upstream.
- Check whether upstream request was sent.
- Check whether upstream sent any response.
- Look for RST, FIN, retransmission, zero window, or idle timeout.
- Measure time from upstream request to proxy error.
- Preserve packet timing when trimming.
Final diagnosis
HTTP 502 and 504 are not root causes. They are proxy reports. Packet evidence can distinguish upstream reset, TLS failure, no healthy backend, slow upstream, network stall, MTU issue, or timeout policy.
PCAP Surgery helps isolate the exact proxy/upstream conversation so the status code can be tied to packet-level behavior.
<!-- pcap-localized-evidence-foundation-v1:start -->Resposta por evidência de pacotes para “Análise PCAP de tempo limite de gateway HTTP 502 e 504: proxy, balanceador de carga, upstream ou rede?”
A resposta direta é que label do analisador ou mensagem do aplicativo não determina causa. Comece por ponto de captura e direção, prove o último limite correto e o primeiro falho. Em “Análise PCAP de tempo limite de gateway HTTP 502 e 504: proxy, balanceador de carga, upstream ou rede?”, outro revisor deve localizar packet, gap ou intervalo que sustenta cada frase e saber o que poderia refutá-la.
Colocar a captura no caminho
Registre client, server e proxy, load balancer, NAT ou firewall. Informe interface, local, clock, sistema e direções visíveis. Captura no client prova o que chegou ali, não que o server não enviou. Captura no server prova saída naquele ponto, não o caminho. Antes de comparar pontos, corrija clock offset e alinhe flow tuple, TCP sequence ou transaction ID.
Verifique snap length, dropped packets, offload, capture filter, ring buffer e início. Bad checksum no host pode ser offload artifact. Segmento grande pode ser GRO/TSO e não existir assim no fio. Packet ausente de arquivo limitado não vira network loss antes de provar que o ponto deveria vê-lo.
Ler limites em ordem
| Limite | Prova de sucesso | Prova de falha útil |
|---|---|---|
| Link/IP | direction, addresses e rota coerentes | ARP/NDP ausente, ICMP, MTU, assimetria |
| TCP | SYN, SYN-ACK, ACK e sequence | retransmission, RST, zero window, timeout |
| TLS | ClientHello, ServerHello e progresso | alert ou limite SNI/ALPN/certificate |
| Aplicação | request completo e response associado | status, gap ou close precoce |
| Usuário | response time ou failure window | stall ligado a limite |
Pare no primeiro limite sem sucesso. Se TCP não completa, não comece por HTTP. Se request chega ao proxy e não ao upstream, o limite está no proxy ou caminho. Se chega ao upstream sem response antes de timeout, ACK e avanço de bytes separam application delay de network loss.
Separar observação e hipótese
Observação pode ser apontada: “Client enviou até certa sequence, sender repetiu segmento três vezes e não apareceu ACK avançado neste ponto”. A hipótese é “o caminho perdeu o segmento”. Outra captura ou dropped records podem refutá-la. Para cada hipótese registre prova a favor e contrária.
Retransmission e duplicate ACK não definem culpado. Reordering, loss, capture artifact e receiver delay criam labels parecidos. Relacione direction, sequence, ACK, SACK, RTT, window e tempo da aplicação. Em DNS/DHCP alinhe transaction ID e tentativas; em HTTP request/response; em TLS direção do handshake.
Preservar original
Calcule checksum e não altere o original. Filtre, recorte e redija working copy. Registre input, transformação, hora, packet count antes/depois, checksum e razão. Após timestamp rewrite ou exclusão de packets, a cópia não suporta certas conclusões de timing ou sequence.
Troque addresses e identificadores por aliases constantes. Não remova port, direction ou length necessários. Separe o mapa secreto. Use limites de captura e export e visão geral PCAP Surgery.
QA antes de publicar
Título e resposta tratam do mesmo flow? Cada duração informa clock e pontos? Primeiro failure boundary está claro? Há alternativa? O teste muda uma variável? Original permanece? Limite a conclusão: “Este arquivo prova comportamento junto ao client no intervalo, não execução interna do server”.
O termo Semrush validado PCAP analyzer pertence somente ao produto. Este artigo não inventa volume ou KD.
<!-- pcap-localized-evidence-foundation-v1:end --><!-- pcap-localized-flow-verdicts-v1:start -->Livro de flow e teste de exclusão
Para “Análise PCAP de tempo limite de gateway HTTP 502 e 504: proxy, balanceador de carga, upstream ou rede?”, crie uma linha por direção: endpoints com alias, primeiro/último packet, bytes enviados e reconhecidos, resets, retransmissions, requests e responses. Não una conexões pelo hostname; source port, início e initial sequence separam sessions. Com NAT ou proxy, registre a relação sem esperar iguais sequence ou ports.
Calcular TCP, não contar labels
Siga next expected sequence do receiver. Payload avança sequence pelo comprimento; SYN e FIN consomem número. Duplicate ACK fixo após segmentos superiores apoia loss ou reordering. SACK blocks mostram ranges recebidos, não local de perda. Retransmission no sender e ausente no receiver exige teste do caminho; original ausente no sender capture exige capture loss ou offload.
Separe fast retransmit após duplicate ACKs de RTO após silêncio. Compare RTT anterior, advertised window, zero-window probes, burst e tamanho. Overlap, spurious retransmission e capture no meio do flow mudam o label; não use quantidade de labels como loss.
Medir tempo por limites
Use request first byte, request complete, response first byte e response complete. TTFB não é server time automaticamente. Retransmission antes da response pode acrescentar network delay; request reconhecido e silêncio longo apoia application wait. Informe valor, unidade, clock e ponto.
Em dois pontos alinhe packet distinto nas duas direções, estime offset e use intervals internos. Se clock for incerto, dê range. Compare janelas boas e falhas com duração e load semelhantes.
Perguntas de protocolo
DNS: ID, nome, tipo e retry resolver. DHCP: Discover, Offer, Request e ACK do mesmo client identifier. TLS: última handshake message por direção e alert. HTTP: autor de 4xx/5xx e upstream flow. TCP close: sender de FIN/RST e bytes sem ACK.
Teste decisivo e entrega
Escolha duas hipóteses e um teste separador. Captura no outro extremo separa network loss de measurement loss; desativar offload em teste verifica artifact; request igual em path fixo verifica intermittency; log upstream versus packet boundary verifica application delay. Escreva resultados esperados antes.
Aceite quando reviewer repete cálculo com metadata e encontra limite e restrição iguais. Entregue checksum original/derived, filter, packet ranges e passos trim/redaction. Feche com owner, ação e condição mensurável.
Revisão de reprodução
Abra nova connection e repita três vezes com entradas e filtros iguais. Ports e initial sequence podem mudar, mas limite, direção e padrão devem repetir. Informe sucessos e falhas. Uma correção muda uma variável e deve gerar a mudança prevista nos packets, não apenas esconder a mensagem.
Abra a cópia derivada em outro sistema. O reviewer encontra aliases, clock, capture point, último sucesso, primeira falha e alternativa. Procure hostname, query, header e payload sensível depois de redaction, mantendo lengths e directions necessários. Liste o não testado: direção oposta, IPv6, reconnect ou outra carga.
Feche como provado no escopo, ainda reproduzível ou aberto por captura específica. “Rede corrigida” é amplo demais após um flow.
<!-- pcap-localized-flow-verdicts-v1:end -->