nginx rst 数据包在发送 http 响应后



我正在使用nginx 1.10.3。

我试图强制的是以下情况:

1.2.3. 客户端<-->服务器 |TCP 3 路 TCP 握手

  1. 客户端 -->服务器 |HTTP GET
  2. 服务器 -->客户端 |TCP ACK
  3. 服务器 -->客户端 |HTTP响应
  4. 服务器 -->客户端 |TCP RST, ACK

我试图在响应 http get 请求后引发发送 RST 数据包。为此,我在nginx_conf文件中设置了"lingering_close关闭"配置参数,但没有成功。有没有其他方法可以挑起这种场景?

最近我们也遇到了类似的情况:我们的应用程序错误日志中有许多"管道破裂"错误。

在分析了tcp传输信息后,我们发现有时nginx会在将FIN发送到上游服务器后立即发送"RST"。最后的结论,我们认为这种行为的原因是,当客户端关闭与nginx的连接时,nginx会关闭相对上游连接,而不是等待上游执行其余任务。

因此,根据nginx文档,我们将配置proxy_ignore_client_abort on到nginx配置文件中。参考: http://nginx.org/

附言我们的nginx版本是1.12。

最新更新