Hi,
nginx.conf中指令:
lingering_close on/off
lingering_close on 完全关闭close socket之前,等待和处理客户端的数据,配合指令lingering_time,lingering_timeout使用
lingering_close off 立即close socket
测试环境中:客户端和nginx使用长连接,客户端发送请求之后,nginx通过proxy相关指令转发请求,然后给出应答。
配置on和off的情况下,查看请求期间,发现socket的状态,发现两种情况下,socket处于TIME_WAIT的时间是相同的。
有以下问题:
1. lingering_close指令和socket属性SO_LINGER是什么关系呢?控制的是socket哪个阶段的时间?
2. lingering_close是否对客户端和上游服务器都起作用呢?(测试环境里抓包和查看socket状态,没有看到明显区别,也许有区别,没有注意到吧)
3. lingering_close on配合lingering_time, lingering_timeout使用的时候,这里的time和timeout是指http层收到包的时间吗?