Analisi PCAP timeout gateway HTTP 502 e 504: proxy, bilanciamento del carico, upstream o rete?
Come diagnosticare HTTP 502 Bad Gateway e 504 Gateway Timeout con acquisizioni di pacchetti, inclusi TCP da proxy a upstream, TLS, tempistica delle richieste, reimpostazioni del backend e risposte bloccate.
Gli errori HTTP "502 Bad Gateway" e "504 Gateway Timeout" sono sintomi a livello proxy. Un browser o un client API vede la risposta del proxy, ma il vero problema potrebbe essere tra il proxy e il server upstream, all'interno dell'applicazione upstream, nella negoziazione TLS, nella raggiungibilità TCP o nella politica di timeout. Gli utenti cercano "analisi 502 pcap", "acquisizione pacchetto timeout gateway 504", "reimpostazione upstream proxy", "timeout bilanciamento del carico Wireshark" e "risoluzione dei problemi di rete gateway errato" quando i registri non sono sufficienti.
La chirurgia PCAP è utile perché gli errori proxy necessitano, se possibile, della storia del pacchetto su entrambi i lati: da client a proxy e da proxy a upstream.
Cosa significa di solito 502
"502 Bad Gateway" di solito significa che il proxy ha ricevuto una risposta non valida, incompleta o non riuscita dall'upstream. Le cause includono:
- Ripristino TCP a monte.
- Errore di handshake TLS upstream.
- Connessione chiusa a monte in anticipo.
- Proxy connesso alla porta sbagliata.
- Il backend ha restituito un HTTP non valido.
- Il bilanciatore del carico non aveva un upstream integro.
- Mancata corrispondenza del protocollo, ad esempio HTTPS previsto ma HTTP inviato.
Il client vede solo il proxy 502. La traccia del pacchetto può mostrare cosa è successo a monte.
Cosa significa di solito 504
"504 Gateway Timeout" di solito significa che il proxy ha inoltrato la richiesta ma non ha ricevuto una risposta upstream completa prima del timeout.
Le cause includono:
- Applicazione upstream lenta.
- Connessione TCP agli stalli a monte.
- Il server accetta la connessione ma non risponde mai.
- Risposta di grandi dimensioni bloccata da MTU o perdita di pacchetti.
- Ritardo del database o delle dipendenze rispetto a upstream.
- Timeout proxy troppo breve.
- Timeout di inattività del firewall o NAT.
La prova chiave è la tempistica: quando il proxy ha inviato la richiesta upstream e quando ha rinunciato.
Cattura il posizionamento
Le migliori prove provengono da:
- Lato cliente: vedi finale 502/504.
- Interfaccia lato client lato proxy.
- Interfaccia rivolta a monte del lato proxy.
- Lato server a monte.
Se acquisisci solo sul client, puoi dimostrare che il proxy ha restituito 502/504 ma non il motivo. Se acquisisci dal proxy, puoi ispezionare il comportamento a monte.
TCP e TLS prima di HTTP
Prima di diagnosticare HTTP, controlla:
- Il proxy ha stabilito il protocollo TCP per l'upstream?
- L'handshake TLS è stato completato?
- L’SNI ha soddisfatto le aspettative a monte?
- L'upstream è stato ripristinato?
- I pacchetti sono stati ritrasmessi?
Se TCP o TLS falliscono, lo stato HTTP potrebbe essere solo la traduzione del proxy dell'errore di livello inferiore.
Richiesta inviata, nessuna risposta
Per 504, cercare:
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 -->Risposta basata sui pacchetti per «Analisi PCAP timeout gateway HTTP 502 e 504: proxy, bilanciamento del carico, upstream o rete?»
La risposta diretta è che un label dell’analizzatore o un messaggio applicativo non determina la causa. Parti da punto di cattura e direzione, poi dimostra l’ultimo confine riuscito e il primo fallito. In «Analisi PCAP timeout gateway HTTP 502 e 504: proxy, bilanciamento del carico, upstream o rete?» un altro revisore deve trovare il packet, il gap o l’intervallo che sostiene ogni frase e sapere quale prova potrebbe smentirla.
Posizionare la cattura sul percorso
Registra client, server e ogni proxy, load balancer, NAT o firewall. Indica interface, luogo, clock, sistema e direzioni visibili. Una cattura presso il client prova ciò che arriva lì, non che il server non abbia inviato. Presso il server prova l’uscita in quel punto, non l’intero percorso. Prima di confrontare due punti correggi clock offset e allinea flow tuple, TCP sequence o transaction ID.
Controlla snap length, dropped packets, offload, capture filter, ring buffer e orario iniziale. Un checksum errato sul host può essere offload artifact. Un segmento grande può derivare da GRO/TSO e non esistere così sul cavo. Un packet assente da un file limitato non è network loss finché non dimostri che il punto doveva vederlo.
Leggere i confini in ordine
| Confine | Prova di riuscita | Prova di guasto utile |
|---|---|---|
| Link e IP | direzione, address e route coerenti | ARP/NDP assente, ICMP, MTU, asimmetria |
| TCP | SYN, SYN-ACK, ACK e sequence | retransmission, RST, zero window, timeout |
| TLS | ClientHello, ServerHello e progresso | alert o confine SNI/ALPN/certificate |
| Applicazione | request completo e response associata | status, gap o chiusura precoce |
| Utente | response time o failure window | stall legato a un confine |
Fermati al primo confine senza successo. Se TCP non si completa, non iniziare da HTTP. Se request arriva al proxy ma non all’upstream, il limite è nel proxy o nel percorso. Se arriva all’upstream senza response entro timeout, ACK e avanzamento dei bytes separano application delay da network loss.
Separare osservazione e ipotesi
Un’osservazione è localizzabile: “Client ha inviato fino a una sequence, sender ha ripetuto un segmento tre volte e qui non compare ACK avanzato”. L’ipotesi è “il percorso ha perso il segmento”. Un’altra cattura o dropped records possono smentirla. Per ogni ipotesi scrivi prova favorevole e prova contraria.
Retransmission e duplicate ACK non assegnano colpa. Reordering, loss, capture artifact e receiver delay generano label simili. Collega direzione, sequence, ACK, SACK, RTT, window e tempo applicativo. Per DNS/DHCP collega transaction ID, address e tentativi; per HTTP request e response; per TLS la direzione del handshake.
Preservare l’originale
Calcola checksum e conserva l’originale immutato. Filtra, taglia e oscura una working copy. Registra input, trasformazione, ora, packet count prima/dopo, checksum risultante e motivo. Dopo timestamp rewrite o rimozione di packets la copia non sostiene più alcune conclusioni temporali o di sequenza.
Sostituisci address e identificatori in modo stabile per seguire lo stesso endpoint. Non eliminare port, directions o lengths necessari. Separa la mappa segreta. Consulta limiti di cattura ed export e il flusso PCAP Surgery.
QA prima della pubblicazione
Titolo e risposta riguardano lo stesso flow? Ogni durata nomina clock e punti? Il primo confine fallito è chiaro? Esiste un’alternativa? Si cambia una variabile? L’originale è conservato? Limita la conclusione: “Questa cattura prova il comportamento presso il client nell’intervallo, non l’esecuzione interna del server”.
Il termine Semrush validato PCAP analyzer appartiene solo alla pagina prodotto. Questo articolo resta sulla domanda tecnica e non inventa volume o KD.
<!-- pcap-localized-evidence-foundation-v1:end --><!-- pcap-localized-flow-verdicts-v1:start -->Registro del flow e test di esclusione
Per «Analisi PCAP timeout gateway HTTP 502 e 504: proxy, bilanciamento del carico, upstream o rete?» crea una riga per direzione: endpoints con alias, primo/ultimo packet, bytes inviati e confermati, reset, retransmissions, requests e responses. Non unire connessioni per lo stesso hostname; source port, inizio e initial sequence separano sessions. Con NAT o proxy documenta la relazione senza aspettare sequence o ports uguali.
Calcolare TCP invece di contare label
Segui next expected sequence del receiver. Il payload avanza sequence della sua lunghezza; SYN e FIN consumano un numero. Duplicate ACK stabile dopo segmenti superiori sostiene loss o reordering. SACK blocks mostrano ranges arrivati, non il punto di perdita. Retransmission visibile al sender ma non al receiver richiede test del tratto; originale assente al sender capture richiede controllo di capture loss o offload.
Separa fast retransmit dopo duplicate ACKs da RTO dopo silenzio. Confronta RTT precedente, advertised window, zero-window probes, burst e dimensione. Non ogni label è perdita: overlap, spurious retransmission o cattura iniziata a metà cambiano la classificazione.
Misurare il tempo con confini
Usa request first byte, request complete, response first byte e response complete. TTFB non equivale a tempo server senza punto e trasporto. Retransmission prima di response può aggiungere network delay; request confermata e lungo silenzio sostiene application wait. Scrivi valore, unità, clock e punto.
Con due punti allinea un packet distintivo nelle due direzioni, stima offset e usa intervals interni. Se clock è incerto, fornisci un range. Confronta finestre buone e guaste di durata e carico simili.
Domande di protocollo
DNS: ID, nome e tipo coincidono, retry cambia resolver o source port? DHCP: Discover, Offer, Request e ACK sono dello stesso client identifier? TLS: ultimo handshake message per direzione e alert visibile o cifrato? HTTP: chi genera 4xx/5xx e c’è upstream flow? TCP close: chi invia FIN/RST e quali bytes restano senza ACK?
Test decisivo e consegna
Scegli due ipotesi e un test che le separa. Cattura all’altro estremo separa network loss e measurement loss; disattivare offload in test verifica artifact; request identico su path fisso verifica intermittency; log upstream contro packet boundary verifica application delay. Scrivi prima gli esiti attesi.
Accetta quando un reviewer ripete il calcolo dai metadata, trova lo stesso confine e capisce i limiti. Consegna checksum original/derived, filter, packet ranges e passi trim/redaction. Chiudi con owner, azione e condizione misurabile.
<!-- pcap-localized-flow-verdicts-v1:end -->