web-dev-qa-db-ja.com

Drupalのブーストワニス-"Control:no-cache"ヘッダーをどうするか?

次の記事 http://www.trellon.com/content/blog/boosted-varnish-high-performance-caching-made-easy#comment-815 ブーストとDrupal 7サイトのワニス。

BoostとVarnishを使用する理由は、Varnishキャッシュの再起動/クリアの影響を制限するためです。

とにかく、Boostをインストールしてステータスレポートページ(/ admin/reports/status)に移動すると、次のメッセージが表示されます。

Drupalコアキャッシュが有効になっている間、Boostは正しく機能しません。Boostまたはコアキャッシュを無効にしてください。

したがって、コアキャッシュを無効にします。これを行うと、次のHTTPヘッダーが設定されます。

キャッシュ制御:no-cache、must-revalidate、post-check = 0、pre-check = 0

コアキャッシュを再度有効にし、ヘッダーを次のように読み取ります。

キャッシュ制御:public、max-age = 900

私が理解しているように、no-cacheのキャッシュ制御ヘッダーは、ワニスのような上流のプロキシに「これをキャッシュすることは許可されていません」と伝えます。

したがって、本質的にはジレンマがあります。Boostではコアキャッシュを無効にする必要がありますが、コアキャッシュを無効にすると、Varnishがサイトをキャッシュできなくなります。
コアキャッシュを有効のままにすると、Boostが機能しなくなります。

どのようにして一緒にニースをプレイさせるのですか?言い換えれば、どのようにしてコアキャッシュを無効にしてBoostをハッピーにするが、キャッシュなしヘッダーを設定しないのでしょうか。

1
Brad

drupal_add_http_header() 独自のモジュールで使用すると、Drupalのヘッダーをオーバーライドできます。

必要ではありません-ヘッダーは、Drupalを直接クリックした場合にのみキャッシュなしに設定されます。ブーストされた静的ではありません。これは良いことです。ニスをブーストしないようにHTMLを保持する必要があります。結局のところ、直接生成されたものではありません。

私はそれを残すことを提案しています。 Boostキャッシュからのファイルはこれらのヘッダーを生成しないため、ワニス用にキャッシュ可能です。直接Drupalヒットで生成されたページのキャッシュはスキップします。ただし、スキップしたい場合があります。たとえば、メッセージが含まれている可能性があります。エラーやメッセージがある場合、Boostはキャッシュしません。 -cache in Drupalを使用すると、この動作を使用してワニスにそれを尊重させることができます。

1
Mołot