Linux Nginx无法正确释放TCP套接字?

Linux Nginx无法正确释放TCP套接字?,linux,sockets,nginx,tcp,Linux,Sockets,Nginx,Tcp,我正在使用Nginx,听起来Nginx没有正确地释放TCP套接字。连接到my Nginx的客户端使用代理,到目前为止,相同的4元组ip源、端口源、ip dest、端口dest可以在很短的时间内(不到1分钟)重复使用。当它发生时,Nginx似乎丢失了 以下是我在tcpdump跟踪中看到的内容: -FIN,Nginx发起的用于关闭会话的ACK -来自客户端的ACK -FIN,来自客户端的ACK -服务器的确认 如果客户端尝试非常快速地(不到1分钟)重新连接相同的4元组,则会失败。客户端发送SYN T

我正在使用Nginx,听起来Nginx没有正确地释放TCP套接字。连接到my Nginx的客户端使用代理,到目前为止,相同的4元组ip源、端口源、ip dest、端口dest可以在很短的时间内(不到1分钟)重复使用。当它发生时,Nginx似乎丢失了

以下是我在tcpdump跟踪中看到的内容: -FIN,Nginx发起的用于关闭会话的ACK -来自客户端的ACK -FIN,来自客户端的ACK -服务器的确认

如果客户端尝试非常快速地(不到1分钟)重新连接相同的4元组,则会失败。客户端发送SYN TCP数据包,但Nginx使用包含未知序列的ACK(如果序列号非常高,并且与以前的TCP会话没有任何意义)进行回复

如果在超过1分钟后重复使用相同的4元组,则没有问题

提前感谢任何有想法解决此问题的人
Aurélien

我对Nginx不太熟悉,但一般来说,TCP套接字在关闭几分钟后可以保持在TIME_WAIT状态,以便捕获散乱的无序数据包。在等待状态到期之前,无法重用4元组

请参见:


我对Nginx不太熟悉,但一般来说,TCP套接字在关闭几分钟后可以保持在等待状态,以便捕获散乱的无序数据包。在等待状态到期之前,无法重用4元组

请参见:


我对Nginx不太熟悉,但一般来说,TCP套接字在关闭几分钟后可以保持在等待状态,以便捕获散乱的无序数据包。在等待状态到期之前,无法重用4元组

请参见:


我对Nginx不太熟悉,但一般来说,TCP套接字在关闭几分钟后可以保持在等待状态,以便捕获散乱的无序数据包。在等待状态到期之前,无法重用4元组

请参见:


非常感谢。如果我没有错,只有当套接字被我的(Nginx)服务器主动关闭时,TCP套接字才会移动到TIME\u WAIT?如果客户端停止会话,TCP scoket应该直接移动到关闭状态,到目前为止,套接字可以直接重新使用吗?您是否也有相同的理解?@aure_bobo No。这样的套接字将一直处于关闭状态,等待本地应用程序关闭。非常感谢。如果我没有错,只有当套接字被我的(Nginx)服务器主动关闭时,TCP套接字才会移动到TIME\u WAIT?如果客户端停止会话,TCP scoket应该直接移动到关闭状态,到目前为止,套接字可以直接重新使用吗?您是否也有相同的理解?@aure_bobo No。这样的套接字将一直处于关闭状态,等待本地应用程序关闭。非常感谢。如果我没有错,只有当套接字被我的(Nginx)服务器主动关闭时,TCP套接字才会移动到TIME\u WAIT?如果客户端停止会话,TCP scoket应该直接移动到关闭状态,到目前为止,套接字可以直接重新使用吗?您是否也有相同的理解?@aure_bobo No。这样的套接字将一直处于关闭状态,等待本地应用程序关闭。非常感谢。如果我没有错,只有当套接字被我的(Nginx)服务器主动关闭时,TCP套接字才会移动到TIME\u WAIT?如果客户端停止会话,TCP scoket应该直接移动到关闭状态,到目前为止,套接字可以直接重新使用吗?您是否也有相同的理解?@aure_bobo No.这样的套接字将保持关闭状态,直到本地应用程序关闭。NGINX将使用带有该方向新序列号的SYN/ACK进行回复。这就是它应该做的。如果这是你唯一的证据证明有问题,那就没有了。当然,没有任何证据表明与您的标题相似。NGINX使用SYN/ACK回复,并为该方向添加了新的序列号。这就是它应该做的。如果这是你唯一的证据证明有问题,那就没有了。当然,没有任何证据表明与您的标题相似。NGINX使用SYN/ACK回复,并为该方向添加了新的序列号。这就是它应该做的。如果这是你唯一的证据证明有问题,那就没有了。当然,没有任何证据表明与您的标题相似。NGINX使用SYN/ACK回复,并为该方向添加了新的序列号。这就是它应该做的。如果这是你唯一的证据证明有问题,那就没有了。当然没有证据表明你的头衔有任何相似之处。