5

使用 Nginx 时,有时当客户端过早关闭其连接时(例如,连接超时、用户重新加载浏览器或按下停止或其他方式),错误日志中会记录 HTTP 499。

我知道 Nginx 能够检测到这一点,因为它们是接收指示套接字已关闭的 SIGPIPE 信号的末端,但是我想知道是否有可能将此通知返回给 Rails?

Shopify 最近使用了一种非常新颖的方法在 Unicorn 中检测到这一点,然后再将请求发送到 Rails 进行处理,但是我希望能够在 Rails 应用程序中检测到这一点,例如在长时间运行的事务中。

4

1 回答 1

1

在 Rails 的调度程序已经开始处理请求之后——不再连接到 http 客户端,只有在处理完成后——响应才返回客户端。

因此,基本上,您无法判断客户端(例如:浏览器)是否在您已经在处理连接时关闭了连接。

于 2013-07-31T11:20:39.203 回答