2

我有一个网站在 Varnish 代理后面运行。为服务器发送的事件打开的任何连接都不会获得任何内容,也不会关闭。Varnish 似乎在将该内容转发到浏览器之前等待内容流结束。并且它保持与服务器的连接打开,直到内容结束。这两个问题都与服务器发送的事件不兼容。

如何配置 Varnish 以在浏览器关闭连接时立即将内容刷新到浏览器并关闭其与服务器的连接?

或者我可以动态地指示 Varnish 完全充当连接的传递,就好像它根本不存在一样?我可以毫无问题地在非代理系统上运行完全相同的 Web 应用程序。而且我无法在此设置中完全绕过 Varnish(例如不同的端口)。

4

1 回答 1

5

您是否尝试在vcl_recv中返回管道

文档中:

管道也可以从 vcl_recv 返回。管道使客户端和后端连接短路,Varnish 只会坐在那里并来回移动字节。Varnish 不会查看来回发送的数据——因此您的日志将不完整。请注意,使用 HTTP 1.1 客户端可以在同一连接上发送多个请求,因此您应该指示 Varnish 在实际返回管道之前添加“Connection: close”标头。

不要错过您必须仅为 SSE 传入请求返回管道。

于 2012-09-07T12:30:26.157 回答