2017-05-13 164 views
1

我的服务器设置是nginx直接连接到一个node.js服务器(nginx和node.js在同一个节点,nginx向节点转发请求:127.0.0.1:8000)。症状有时在nginx日志中有大约504个日志。而node.js日志不会显示任何收到请求的标志。 然后我使用iptables启用tcp日志,iptables将所有tcp数据包记录到端口8000.在检查tcp日志后,似乎nginx正试图与node.js服务器建立tcp连接,但它从未成功。它只是重试发送SYN数据包,然后通过nginx超时。下面是一个例子(TCP + nginx的日志):nginx tcp SYN包没有收到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 

在此期间,CPU负载是相当轻,存储器< 50%,进入的请求是小于50每分钟。其他请求正常处理。

服务器是Ubuntu 14.04.2 LTS

任何想法是怎么回事?看起来像操作系统级别的问题?先谢谢你。

回答

0

检查环回接口上的TCP端口8000是否实际上正在运行。尝试一些命令,如:

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

这些应该给你一些提示是否有什么在听。或者它可能只在特定的接口/地址上进行监听,而不是您的环回。

+0

它正在监听8000.它正在处理请求。有时候一个请求可能会遇到这样的问题。 –

相关问题