1

現在、約 30 ~ 40 の異なる Web サイトを実行するサーバーで Varnish を実行しています。これらの Web サイトはすべて、リクエストの処理に同じライブラリを使用します (すべての Web サイトには独自のドメインがあります)。ただし、これらの Web サイトの一部は非常に単純で、完全にキャッシュできます。私がやりたいのは、プロジェクト/ウェブサイト(特定のヘッダー)でフラグを有効にして、配信されたリクエストをキャッシュするようにワニスに指示することです。完全にキャッシュできるすべてのプロジェクトの VCL を編集して、次のように vcl_fetch にエントリを追加したくないため、このような構成は可能ですか?

if (req.http.host ~ "<website>")
{
    unset req.http.cookie;
    return (lookup)
}

これを行う適切な方法はありますか?Varnish フローチャートを見ましたが、良い解決策が思いつきません。

前もって感謝します!

4

4 に答える 4

1

ワニスを使い始めたばかりで、このアイデアが気に入りました。いくつかのドメインのみをキャッシュしたいので、常に vcl を変更したくないという問題があります。

「特別な」ヘッダーの設定を調べてから、ワニスに魔法をかけてもらいました。

しかし、その後、ドキュメントを調べたところ、もっと簡単な方法があります。

header('Cache-Control: public, max-age=10');

このようにして、ワニスはコンテンツを 10 秒間キャッシュします。したがって、それを永久にキャッシュしたい場合は、非常に大きな整数を使用することで近づくことができます。

// Caches the content for a year, if my calculations are right :P
header('Cache-Control: public, max-age=' . (60 * 60 * 24 * 365));
于 2013-07-18T15:07:52.663 に答える