2012-09-06 48 views
2

我有一个网站运行在一个清漆代理。任何打开服务器发送事件的连接都不会获取任何内容,也不会关闭。在将内容转发给浏览器之前,清漆似乎等待内容流结束。它保持连接对服务器开放,直到内容结束。这两个问题都与服务器发送的事件不兼容。通过清漆代理服务器发送事件

如何配置光油立即刷新内容到浏览器,在浏览器关闭它的连接关闭其连接到服务器?

或者我可以动态地指示Varnish完全充当连接的传递,就好像它甚至不在那里一样?我可以在没有问题的非代理系统上运行完全相同的Web应用程序。在这种设置下,我不能完全绕过清漆(例如不同的端口)。

回答

5

您是否尝试过返回管道 in vcl_recv

documentation

管可从vcl_recv也被退回。管道将客户端和后端连接短路,并且Varnish将只是坐在那里 并来回拖动字节。光油不会看数据 被来回发送 - 让你的日志将是不完整的。当心 与HTTP 1.1的客户端可以在同一 连接上发送多个请求,所以你应该指示光油添加一个“连接: 接近”其实回水管前头。

不要错过必须返回pipe只适用于SSE传入请求。

+0

完美,谢谢!那加'设置bereq.http.connection =“关闭”;'解决它。 –

+0

遗憾再次提出这个问题,我不知道你default.vcl是怎么样子的呢?我也有同样的问题。我有SSE在处理/ event_source中处理SSE的服务器上。谢谢! – Hokutosei