我正在使用Nginx,听起来Nginx没有正确发布TCP套接字。连接到我的Nginx的客户端正在使用代理,到目前为止,相同的4-tuplet ip source,port source,ip dest,port dest可以在很短的时间内(不到1分钟)重复使用。当它发生时,Nginx似乎丢失了。
以下是我在tcpdump跟踪中可以看到的内容: - 由Nginx发起的FIN,ACK关闭会话 - 来自客户的ACK - FIN,来自客户的ACK - 服务器确认
如果客户端尝试使用相同的4个连音符快速重新连接(不到1分钟),则会失败。客户端发送SYN TCP数据包,但Nginx回复时包含一个包含未知序列的ACK(序列号如果非常高,对前一个TCP会话没有任何意义)。
如果在超过1分钟后重复使用相同的4连音符,则没有问题。
提前感谢任何想要解决此问题的人 的Aurelien
答案 0 :(得分:3)
我不熟悉Nginx,但一般情况下,TCP套接字在关闭几分钟后可以保持TIME_WAIT状态,以便捕获杂散的无序数据包。在TIME_WAIT状态到期之前,不能重用4元组。
查看:强>