2017-05-13 5 views
1

Mein Server Setup ist Nginx direkt verbindet sich mit einem node.js Server (nginx und node.js sind im selben Knoten und Nginx ist Weiterleitungsanforderung an Knoten: 127.0.0.1:8000). Das Symptom ist manchmal, dass es 504 Logs in nginx log gibt. Und das Protokoll node.js zeigt keinerlei Anzeichen dafür, jemals die Anfrage erhalten zu haben. Ich aktiviert dann tcp-Protokoll mit iptables, die alle tcp-Pakete auf Port 8000 protokolliert. Nach Überprüfung der TCP-Protokoll, es scheint, dass nginx versuchte, eine TCP-Verbindung mit node.js Server zu etablieren, aber es gelingt nie. Es hat einfach immer wieder versucht, SYN-Pakete zu senden und hat dann von nginx eine Zeitüberschreitung erhalten. Hier ist ein Beispiel (tcp + nginx log):nginx tcp SYN Paket nicht empfangen ACK

13:44:44 sp:48103 dp:8000 SYN 
13:44:45 sp:48103 dp:8000 SYN 
13:44:47 sp:48103 dp:8000 SYN 
13:44:51 sp:48103 dp:8000 SYN 
13:44:59 sp:48103 dp:8000 SYN 
13:45:15 sp:48103 dp:8000 SYN 
13:45:44 nginx 504 

Während der Zeit, ist die CPU-Last ziemlich leicht, Speicher < 50%, eingehende Anforderung weniger als 50 pro Minute. Und andere Anfragen wurden normal verarbeitet.

Server ist Ubuntu 14.04.2 LTS

Jede Idee, was los ist? Scheint wie ein OS-Level-Problem? Vielen Dank im Voraus.

Antwort

0

Überprüfen Sie, ob auf Ihrer Loopback-Schnittstelle tatsächlich etwas über den TCP-Port 8000 läuft. Versuchen Sie einige Befehle wie:

lsof -P -n -i tcp:8000 
fuser 8000/tcp 
ss -4lnt 
netstat -4lnt 

Diese sollten Ihnen einige Hinweise geben, ob etwas überhaupt zuhört. Oder es kann nur an einer bestimmten Schnittstelle/Adresse und nicht an Ihrem Loopback abhören.

+0

Es hört 8000. Und es ist Verarbeitungsanforderungen. Nur manchmal konnte eine Anfrage ein solches Problem auftreten. –

Verwandte Themen