Analyse PCAP du délai d'expiration des passerelles HTTP 502 et 504 : proxy, équilibreur de charge, en amont ou réseau ?
Comment diagnostiquer HTTP 502 Bad Gateway et 504 Gateway Timeout avec des captures de paquets, y compris TCP vers le proxy en amont, TLS, la synchronisation des requêtes, les réinitialisations du backend et les réponses bloquées.
Les erreurs HTTP « 502 Bad Gateway » et « 504 Gateway Timeout » sont des symptômes de la couche proxy. Un navigateur ou un client API voit la réponse du proxy, mais le véritable problème peut se situer entre le proxy et le serveur en amont, à l'intérieur de l'application en amont, dans la négociation TLS, dans l'accessibilité TCP ou dans la politique de délai d'attente. Les utilisateurs recherchent « analyse 502 pcap », « capture de paquets de délai d'expiration de la passerelle 504 », « réinitialisation du proxy en amont », « délai d'expiration de l'équilibreur de charge Wireshark » et « dépannage du réseau de passerelle incorrecte » lorsque les journaux ne suffisent pas.
La chirurgie PCAP est utile car les échecs de proxy nécessitent si possible l’histoire des paquets des deux côtés : client vers proxy et proxy vers amont.
Ce que signifie habituellement 502
« 502 Bad Gateway » signifie généralement que le proxy a reçu une réponse invalide, incomplète ou ayant échoué en amont. Les causes incluent :
- Réinitialisation TCP en amont.
- Échec de la négociation TLS en amont.
- Connexion en amont fermée plus tôt.
- Proxy connecté au mauvais port.
- Le backend a renvoyé un HTTP malformé.
- L'équilibreur de charge n'avait pas d'amont sain.
- Incompatibilité de protocole, telle que HTTPS attendu mais HTTP envoyé.
Le client ne voit que le 502 du proxy. La trace des paquets peut montrer ce qui s'est passé en amont.
Ce que signifie habituellement 504
« 504 Gateway Timeout » signifie généralement que le proxy a transmis la demande mais n'a pas reçu de réponse complète en amont avant son expiration.
Les causes incluent :
- Application en amont lente.
- Connexion TCP aux stalles en amont.
- Le serveur accepte la connexion mais ne répond jamais.
- Réponse volumineuse bloquée par MTU ou perte de paquets.
- Retard de base de données ou de dépendance en amont.
- Délai d'expiration du proxy trop court.
- Délai d'inactivité du pare-feu ou du NAT.
La preuve clé est le timing : le moment où le proxy a envoyé la requête en amont et le moment où il a abandonné.
Emplacement de capture
Les meilleures preuves proviennent de :
- Côté client : voir final 502/504.
- Interface client côté proxy.
- Interface côté proxy en amont.
- Côté serveur en amont.
Si vous capturez uniquement chez le client, vous pouvez prouver que le proxy a renvoyé 502/504 mais pas pourquoi. Si vous capturez au niveau du proxy, vous pouvez inspecter le comportement en amont.
TCP et TLS avant HTTP
Avant de diagnostiquer HTTP, vérifiez :
- Le proxy a-t-il établi TCP en amont ?
- La négociation TLS est-elle terminée ?
- SNI a-t-il répondu aux attentes en amont ?
- L'amont a-t-il été réinitialisé ?
- Les paquets ont-ils été retransmis ?
Si TCP ou TLS échoue, l'état HTTP peut être uniquement la traduction par le proxy d'un échec de niveau inférieur.
Demande envoyée, pas de réponse
Pour 504, recherchez :
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 -->Réponse fondée sur les paquets pour « Analyse PCAP du délai d'expiration des passerelles HTTP 502 et 504 : proxy, équilibreur de charge, en amont ou réseau ? »
La réponse directe est qu’un label d’analyse ou un message applicatif ne suffit pas à désigner la cause. Commencez par le point de capture et la direction, puis prouvez la dernière frontière réussie et la première en échec. Pour « Analyse PCAP du délai d'expiration des passerelles HTTP 502 et 504 : proxy, équilibreur de charge, en amont ou réseau ? », un autre lecteur doit retrouver le packet, le trou ou l’intervalle soutenant chaque phrase et savoir quel élément pourrait la réfuter.
Placer la capture sur le chemin
Consignez client, serveur et tout proxy, load balancer, NAT ou firewall. Indiquez interface, lieu, horloge, système et directions visibles. Une capture côté client prouve ce qui y arrive, pas que le serveur n’a rien envoyé. Côté serveur, elle prouve la sortie à cet endroit, pas le trajet. Avant de comparer deux points, corrigez clock offset et alignez flow tuple, TCP sequence ou transaction ID.
Vérifiez snap length, dropped packets, offload, capture filter, ring buffer et heure de départ. Un mauvais checksum sur l’hôte peut être un offload artifact. Un grand segment peut venir de GRO/TSO sans exister ainsi sur le fil. Un packet absent d’un fichier limité n’est pas une network loss tant que le point devait réellement le voir.
Lire les frontières dans l’ordre
| Frontière | Preuve de réussite | Preuve d’échec utile |
|---|---|---|
| Link et IP | direction, adresses et route cohérentes | ARP/NDP absent, ICMP, MTU, asymétrie |
| TCP | SYN, SYN-ACK, ACK et sequence | retransmission, RST, zero window, timeout |
| TLS | ClientHello, ServerHello et progression | alert ou frontière SNI/ALPN/certificate |
| Application | request complet et réponse associée | status, trou ou fermeture précoce |
| Usage | response time ou failure window | blocage lié à une frontière |
Arrêtez-vous à la première frontière sans réussite. Si TCP n’est pas établi, ne commencez pas par HTTP. Si le request atteint le proxy mais pas l’upstream, la limite se situe dans le proxy ou son chemin. S’il atteint l’upstream sans response avant timeout, ACK et progression des bytes séparent application delay et network loss.
Séparer observation et hypothèse
Une observation est pointable : « Le client a envoyé jusqu’à une sequence, l’émetteur a répété un segment trois fois et aucun ACK progressif n’apparaît ici. » L’hypothèse est : « le chemin a perdu le segment ». Une autre capture ou des dropped records peuvent la réfuter. Pour chaque hypothèse, écrivez une preuve favorable et une preuve contraire.
Retransmission ou duplicate ACK ne désigne pas le responsable. Reordering, loss, capture artifact et receiver delay peuvent produire des labels proches. Reliez direction, sequence, ACK, SACK, RTT, window et temps applicatif. Pour DNS/DHCP, associez transaction ID, adresses et essais ; pour HTTP, request et response ; pour TLS, direction du handshake.
Préserver l’original
Calculez le checksum et gardez l’original inchangé. Filtrez, coupez et masquez une working copy. Journalisez input, transformation, heure, packet count avant/après, checksum résultat et motif. Après timestamp rewrite ou suppression de packets, cette copie ne convient plus à certaines mesures de temps ou de séquence.
Remplacez adresses et identifiants de façon stable pour suivre le même endpoint. Ne retirez pas ports, directions ou longueurs nécessaires. Gardez la table secrète séparée. Consultez les limites de capture et d’export et le parcours PCAP Surgery.
QA avant publication
Titre et réponse traitent-ils le même flow ? Chaque durée cite-t-elle horloge et points ? La première frontière défaillante est-elle claire ? Une alternative est-elle testée ? Une seule variable change-t-elle ? L’original subsiste-t-il ? Limitez la conclusion : « Cette capture prouve le comportement côté client pendant cet intervalle, pas l’exécution interne du serveur. »
Le terme Semrush validé PCAP analyzer reste la propriété exclusive du produit. Cet article ne revendique ni volume ni KD non mesurés.
<!-- pcap-localized-evidence-foundation-v1:end --><!-- pcap-localized-flow-verdicts-v1:start -->Registre de flow et test d’exclusion
Pour « Analyse PCAP du délai d'expiration des passerelles HTTP 502 et 504 : proxy, équilibreur de charge, en amont ou réseau ? », créez une ligne par direction : endpoints sous alias, premier/dernier packet, bytes envoyés et acquittés, resets, retransmissions, requests et responses. Ne fusionnez pas deux connexions à cause du hostname ; source port, début et initial sequence séparent les sessions. Avec NAT ou proxy, documentez la relation sans attendre les mêmes sequence ou ports.
Calculer TCP plutôt que compter les labels
Suivez la next expected sequence du receiver. Le payload avance sequence de sa longueur ; SYN et FIN consomment aussi un numéro. Un Duplicate ACK stable après des segments supérieurs soutient loss ou reordering. Les SACK blocks montrent les ranges reçus, pas le lieu de perte. Retransmission visible côté sender mais absente côté receiver appelle un test du segment intermédiaire ; original absent côté sender appelle capture loss ou offload.
Séparez fast retransmit après duplicate ACKs et RTO après silence. Comparez RTT antérieur, advertised window, zero-window probes, burst et taille. Chaque label n’est pas une perte : overlap, spurious retransmission ou capture au milieu du flow changent l’analyse.
Mesurer le temps par frontières
Utilisez request first byte, request complete, response first byte et response complete. TTFB n’est pas automatiquement le temps server. Retransmission avant response peut ajouter network delay ; request acquitté puis long silence soutient application wait. Donnez valeur, unité, clock et point.
Avec deux points, alignez un packet distinctif dans les deux directions, estimez offset puis utilisez les intervals internes. Si les clocks sont incertaines, fournissez une plage. Comparez fenêtres réussies et défaillantes de durée et charge proches.
Questions de protocole
DNS : ID, nom et type correspondent-ils, retry change-t-il resolver ou source port ? DHCP : Discover, Offer, Request et ACK appartiennent-ils au même client identifier ? TLS : dernier handshake message par direction et alert visible ou chiffré ? HTTP : qui génère 4xx/5xx, un upstream flow précède-t-il ? TCP close : qui envoie FIN/RST et quels bytes restent non acquittés ?
Test décisif et remise
Choisissez deux hypothèses et un test séparateur. Une capture à l’autre extrémité sépare network loss et measurement loss ; désactiver offload en test vérifie artifact ; request identique sur path fixe teste intermittency ; log upstream face à packet boundary teste application delay. Écrivez les résultats attendus avant.
La recette exige qu’un reviewer refasse le calcul depuis les metadata, trouve la même frontière et comprenne les limites. Livrez checksums original/dérivé, filter, packet ranges et étapes trim/redaction. Terminez par owner, action et condition mesurable.
<!-- pcap-localized-flow-verdicts-v1:end -->