1

ワニスキャッシュの応答をチャンクにしようとしています... (それは可能ですよね?)

次のシナリオがあります。

1 - キャッシュはクリーンで、問題なく使用できます (サービス ニスの再起動)

2 - www.mywebsite.com/page に初めてアクセスする

初回アクセス ヘッダー

(コンテンツの長さは返されず、チャンクが存在します。すばらしい!)

3 - 次にページにアクセスすると (単純なリロードのように)、キャッシュされます..そして今、私はこれを取得します:

2 回以上のアクセス ヘッダー

(今、コンテンツの長さがあります...つまり、チャンクがないことを意味します:(良くありません!)

いくつかの Varnish ドキュメント/ブログ (およびこれ: http://book.varnish-software.com/4.0/chapters/VCL_Basics.html ) を読んだ後、2 つの「最後の」リターンがあるように見えます: return(fetch)またはreturn(deliver ) )

return(fetch)を強制すると、チャンクエンコーディングが機能します...しかし、それはリクエストがキャッシュされないことも意味しますよね? return(deliver)は正しくキャッシュしますが、content-length ヘッダーを追加します。

これらを default.vcl ファイルに追加しようとしました:

set beresp.do_esi = true; (at vcl_backend_response stage)

unset beresp.http.content-length; (at different stages, without success)

では、Varnish キャッシングを Transfer-Encoding: チャンクで動作させるにはどうすればよいでしょうか?

ご清聴ありがとうございました!

4

1 に答える 1

1

まとめて送りたい理由はありますか?チャンク転送エンコーディングは、コンテンツの長さが事前にわからない場合の一種の不器用な回避策です。ここで実際に起こっていることは、Varnish が最初にキャッシュした後に gzip されたコンテンツの長さを計算できるため、回避策を使用する必要がないということです! このシナリオでは、パフォーマンスの向上を逃すことはありませんのでご安心ください。

于 2016-09-08T01:03:11.097 に答える