Varnish のキャッシュが効いているかやどの位高速化されているかを解析するのは Firefox のアドオンである Firebug を使えば簡単にできます。
Varnish とは何か
こちら や こちら あたりを参考にして下さい。今回は Varnish が既にサーバ側にインストールされているものとして話を進めます。インストールがまだの場合は こちら や こちら あたりが参考になります。Windows の場合は Cygwin になりますがまだ説明はありません。。。
Firebug とは何か
超有名ツールなので説明の必要も無いかもしれませんが以下のような URL が参考になります。
- [Webのバグを燃やしまくるFirebugと、そのアドオン7選]
- [Firebug ADD-ONS ページ(インストールもこちら)]
Firebug で Varnish がキャッシュされているか確認する
Firebug で Varnish がキャッシュされているかを解析するのは主にネットタブを使います。
まず最初に確認したいサイトへアクセスし Firebug を開いてください。
[]
最初に Firebug を起動します。これは上のイメージの(1) のようにツールバーからでも「表示」−「Firebug」からでもどこでも構いません。
[]
Firebug が起動したらネットタブを開きます。ただ、このままだと何も表示されていないのでこの URL をリロード(再読み込み)します。
[]
リロードすると各コンテンツをダウンロードした時の速度がタイムラインに表示されます。この時ステータス列を見てください。40x や 50x エラー以外で 200 OK や 304 Not Modified が出ていると思います。
304 Not Modified(エラーではありません)はブラウザがこの URL を過去に読み込み、各コンテンツ(URL)の情報(HTML だったりイメージだったり)を(ブラウザが)キャッシュしている時に発生します(Varnish のキャッシュではありません)。
この場合、サーバへキャッシュ情報を更新されていないかの確認は行なっていますが、修正がない場合はダウンロードせずにこのブラウザキャッシュをそのまま使う為、非常に高速になります。この状態が 304 Not Modified を意味します。
ただし、Varnish のデバッグを行う上ではブラウザキャッシュは邪魔になってしまう為、このブラウザキャッシュを無効化しておくのがベストです。
ブラウザキャッシュの無効化は上のイメージの (1) に示した箇所をクリックし、「ブラウザキャッシュを無効化する」を選択して URL を再読み込みします。
[]
「ブラウザキャッシュを無効化する」を選択し、URL 再読み込みを行うと全てのステータスが 200 OK となっていることが確認できます。
次にこのネットタブの各 URL の + 起動をクリック((1) の箇所)して中身を見てみましょう。
[]
この URL 情報にはいくつかタブが表示され(パラメータ、ヘッダ、レスポンス、キャッシュ、HTML、Cookie)ますが、今回はヘッダを見てみます。
ヘッダーは “レスポンスヘッダ” と “リクエストヘッダ” に別れ、それぞれ HTTP のレスポンスとリクエスト時のパラメータを示しています。
そして Varnish でキャッシュができているかを確認するにはこの “レスポンスヘッダ” の X-Varnish を見てみます。これは Varnish がレスポンスを返す時に必ず付与するパラメータです。
フォーマットは “X-Varnish [数値1] [数値2]” となっていますが、各数値は Varnish 側で管理しているコンテンツの ID になります。ただし、**Varnish 側にキャッシュがない場合は 数値2 が存在せず Varnish のキャッシュではなくバックエンドに問い合わせを行なってからそのコンテンツを配送したことを意味します。
その為、この箇所を見るだけで Varnish のキャッシュが効いているかを確認することができます。