我有一个长轮询客户端,它们连接到 nginx 和上游到 kestrel dot net。客户端设置了 2 分钟后连接中断的 keepalive。在 nginx 方面,我听 0.0.0.0:xxx ssl so_keepalive= 5m:10:5; 所以大约6分钟
我将 eth 电缆从电缆中拉出,防止任何传输,并且客户端检测到连接中断,但我的上游服务器没有。上游服务器永远不会检测到这一点。
现在 nginx 没有检测到这个中断吗?然后不关闭与上游的连接?或者我做错了什么?
谢谢
通常,当您将网络电缆从网络设备中拉出时(模拟网络上的一些中断,因此会出现模糊的断开连接),底层套接字不会检测到断开连接(至少我们的单元不会),因此我们使用 keep alive 来断开连接并重新连接。
所有单位都使用每小时长轮询到 nginx 服务器。所以我的问题是:
如果该单元没有检测到电缆断开连接(可能还有 100 种网络上的其他情况),那么 nginx 也没有断开套接字并且该套接字保持打开状态?
保持开放多久?
我们是否应该在 nginx 端也使用 tcp keep alive 对客户端?如何?