nginx反向代理 – 在HTTPS客户端断开连接时不closures上游连接

我有一个服务器,需要知道什么时候客户端closures连接。 服务器位于nginx反向代理的后面。 一切工作正常HTTP,但只要打开SSL,Nginx似乎持有上游连接HTTPS客户端已断开后打开一整分钟。

当客户端断开连接时,如何让nginxclosures上游连接?

这是我的nginxconfiguration:

ssl_session_cache off; server { listen 443; ssl on; ssl_certificate server.crt; ssl_certificate_key server.key; location /find { proxy_pass http://my_upstream; proxy_ignore_client_abort off; proxy_buffering off; } } 

很晚,但可能有助于其他人。 我遇到了同样的问题,结果是nginx问题(请参阅https://www.ruby-forum.com/topic/4412004 ):

所以潜在的问题是,nginxstream层抽象不够干净,无法处理低级操作系统事件,然后通过SSL层映射它们以根据需要读取/写入概念事件。 相反,您需要一个OS级别的“eof”事件,然后您通过SSL抽象层将其映射到SSLstreameof事件。

好的,我看了一下kqueue eof处理,以及epoll eof处理需要什么,并创build了一个似乎可行的快速补丁。

我在1.4.2上应用了这个补丁 ,它工作正常! 到目前为止没有问题。 希望它会在下一个版本中修复。

编辑

这个问题似乎用nginx版本> = 1.5.5来解决:

function:现在,如果使用“epoll”方法,nginx使用EPOLLRDHUP事件来检测客户端的过早连接。