2

Varnish プロキシの背後で Web サイトを実行しています。サーバー送信イベント用に開いている接続は、コンテンツを取得したり、閉じたりすることはありません。Varnish は、そのコンテンツをブラウザーに転送する前に、コンテンツ ストリームが終了するのを待っているようです。また、コンテンツが終了するまで、サーバーへの接続を開いたままにします。これらの問題はどちらも、サーバー送信イベントと互換性がありません。

ブラウザが接続を閉じるとすぐにコンテンツをブラウザにフラッシュし、サーバーへの接続を閉じるように Varnish を設定するにはどうすればよいですか?

または、Varnish が存在しないかのように接続のパススルーとして機能するように動的に指示できますか? プロキシされていないシステムでもまったく同じ Web アプリケーションを問題なく実行できます。また、このセットアップでは Varnish を完全にバイパスすることはできません (別のポートなど)。

4

1 に答える 1

5

vcl_recvでパイプを返そうとしましたか?

ドキュメントから:

パイプは vcl_recv からも返すことができます。パイプはクライアントとバックエンド接続を短絡させ、Varnish はただそこに留まり、バイトを前後にシャッフルします。Varnish は送受信されるデータを調べないため、ログは不完全になります。HTTP 1.1 では、クライアントは同じ接続で複数のリクエストを送信できることに注意してください。そのため、実際にパイプを返す前に、「Connection: close」ヘッダーを追加するよう Varnish に指示する必要があります。

SSE 着信要求に対してのみパイプを返さなければならないことをお見逃しなく。

于 2012-09-07T12:30:26.157 に答える