web-dev-qa-db-ja.com

Varnishキャッシュが正しく機能しているかどうかを確認するにはどうすればよいですか?

Nginxで実行されるWordpress WebサイトでVarnishCacheを使用しています。 このブログ で説明されている方法で構成されています。動作していますが、かどうかはわかりません。実際にはキャッシュからコンテンツを提供しています。

確実に知る方法は?誰かが私を案内してくれませんか。 Varnishキャッシュは初めてです。

12
LittleLebowski

Varnishは、デフォルトで、処理するすべての要求の応答にヘッダーを追加します。 Firebugなどのブラウザツール、またはcurl[〜#〜などのCLIツールを使用して、応答ヘッダーを確認できます。 ] get [〜#〜]。 GETの例を次に示します。

Sudo apt-get install libwww-Perl && GET -Used http://localhost:6081/index.html

検索する2つのヘッダーは、X-VarnishAgeです。 X-Varnishには、1つまたは2つの番号が含まれます。番号自体は重要ではありませんが、リクエストを参照します。リクエストの結果がミスの場合、Varnishはバックエンドからページをフェッチし、レスポンスのX-Varnishヘッダーには現在のリクエストの番号が1つ含まれています。

X-Varnish: 107856168

次回同じページがリクエストされると、ヒットする可能性があります。含まれている場合、Varnishはキャッシュからページをフェッチし、元のリクエストから番号を追加します。

X-Varnish: 107856170 107856168

Ageヘッダーは、キャッシュされたコピーが何秒古いかを示します。ミスの場合は0になり、ヒットの場合は> 0になります。

バックエンドは、誤ったヒットのように見える年齢ヘッダーを設定でき、スタックされたワニスは、X-Varnishヘッダーで誤ったミスを生成する可能性があることに注意してください。デバッグ時に確実に行うには、VCLのヒットおよびミス関数に独自のヘッダーを追加できます。説明については、このページを参照してください https://www.varnish-software.com/static/book/VCL_functions.html 。ワニスの初心者として、X-VarnishとAgeヘッダーが必要なすべてです。

18
juneih

Vclのさまざまなコードパスと条件で単体テストを実行できるように、vclのさまざまなポイントに独自のXヘッダーを追加することをお勧めします。

たとえば、vcl_deliverでは次のようになります。

sub vcl_deliver
{
    # Insert Diagnostic header to show Hit or Miss
    if (obj.hits > 0) {
        set resp.http.X-Cache = "HIT";
        set resp.http.X-Cache-Hits = obj.hits;
    }
    else {
        set resp.http.X-Cache = "MISS";
    }

    ...
}
2
Ray Jennings