2012-09-06 57 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