本地主机向本地主机发送 SYN,未收到 ACK

本地主机向本地主机发送 SYN,未收到 ACK

我的服务器设置是 nginx 直接连接到 node.js 服务器(nginx 和 node.js 在同一个节点中,并且 nginx 将请求转发到 node.js:127.0.0.1:8000)。症状是有时 nginx 日志中会出现一些 504 日志。并且 node.js 日志没有显示任何收到请求的迹象。然后我使用 iptables 启用了 tcp 日志,它会记录往返于端口 8000 的所有 tcp 数据包。检查 tcp 日志后,似乎 nginx 正在尝试与 node.js 服务器建立 tcp 连接,但从未成功。它只是不断重试发送 SYN 数据包,然后被 nginx 超时。以下是一个例子(tcp + nginx 日志):

May 14 15:27:44 iZ255cnkjm1Z kernel: [5320615.762381] IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=63441 DF PROTO=TCP SPT=33533 DPT=8000 WINDOW=43690 RES=0x00 SYN URGP=0
May 14 15:27:45 iZ255cnkjm1Z kernel: [5320616.760064] IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=63442 DF PROTO=TCP SPT=33533 DPT=8000 WINDOW=43690 RES=0x00 SYN URGP=0
May 14 15:27:47 iZ255cnkjm1Z kernel: [5320618.764069] IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=63443 DF PROTO=TCP SPT=33533 DPT=8000 WINDOW=43690 RES=0x00 SYN URGP=0
May 14 15:27:51 iZ255cnkjm1Z kernel: [5320622.768069] IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=63444 DF PROTO=TCP SPT=33533 DPT=8000 WINDOW=43690 RES=0x00 SYN URGP=0
May 14 15:27:59 iZ255cnkjm1Z kernel: [5320630.784094] IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=63445 DF PROTO=TCP SPT=33533 DPT=8000 WINDOW=43690 RES=0x00 SYN URGP=0
May 14 15:28:15 iZ255cnkjm1Z kernel: [5320646.816070] IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=63446 DF PROTO=TCP SPT=33533 DPT=8000 WINDOW=43690 RES=0x00 SYN URGP=0

接下来是 nginx 日志:

x.x.x.x - - [14/May/2017:15:28:44 +0800] "GET /javascripts/version.json HTTP/1.1" 504 ...

期间CPU负载较轻,内存<50%,每分钟接入请求少于50个,其他请求均正常处理。

服务器是 Ubuntu 14.04.2 LTS

知道发生了什么吗?似乎是操作系统级别的问题?提前谢谢您。

更新:

防火墙没有任何特殊设置。iptables -nvL 显示以下内容:

Chain INPUT (policy ACCEPT 426K packets, 552M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 350K packets, 218M bytes)
 pkts bytes target     prot opt in     out     source               destination

相关内容