我们正在使用 nginx(目前为 1.6)将我们的服务反向代理到客户端。我们还使用 Server-Sent Events,这是 HTTP 上的一个层,可保持套接字打开。
这是所需的配置部分。
proxy_buffering off;
proxy_http_version 1.1;
这是我们的设置
Client <---> nginx <---> Service
Socket 1 Socket 2
当我关闭浏览器而没有正确断开连接时,套接字 1 会关闭,而套接字 2 仍处于打开状态。服务发现 nginx 仍处于连接状态,并且仍在继续向其推送消息。
这是我使用 wireshark 看到的场景。
Client -XXX- nginx <---> Service
Socket 1 Socket 2
有没有办法让 nginx 关闭 Socket 2?
HTTP 会Connection: keep-alive
导致任何不良行为吗?