こちら でリバースプロキシについて説明しましたが、今回はこのリバースプロキシを実現する Varnish を紹介します。
Varnish 概要
Varnish はリバースプロキシサーバです。varnish はパフォーマンスに優れ apache の 10数倍とも言われています。varnish はユーザからのアクセスがあるとバックエンドと呼ばれる実際の Web サーバ(リアル Web サーバとも呼ばれます)に問い合わせを行い、可能な限りキャシュ(メモリでもファイルでも)します。
そしてその後のユーザアクセスはバックエンドへの問い合わせを行わず、キャッシュをそのまま返すので高速になります。
Varnish 関連リンク
以下に varnish 関連のリンクを記載します(varnish には日本語ドキュメントが余りありません)。
Varnish HP
Varnish Document
[http://www.varnish-cache.org/docs/]
Varnish Download 先
http://www.varnish-cache.org/releases
Varnish で惜しいところ
varnish で注意が必要なのは SSL 通信ができないところです。SSL は実装が大変みたいです。
Apache から Varnish に切り替えた時に新鮮なところ
varnish のログ出力は共有メモリに行われ基本はログ出力しません。このログは varnishlog という専用のコマンドを通して確認することができます。また Apache のようなアクセスログも varnishncsa というコマンドを通して出力します。ただし、こちらは通常ではインストールすると自動的に /var/log/varnish/varnishncsa.log 等に出力されるように設定されます。
また、Proxy を制御する(この URL からアクセスがあったらこっちに振り分ける等)のに専用の C 言語ライクなプログラム言語(VCL とい言います)が用意されています。
Varnish でちょっと難しいところ
varnish ではキャッシュヒット率をどう上げるかがポイントになります。キャッシュヒット率を調整する為に varnishtop、varnishlog、varnishhist、varnishstat 等の varnish に付属するコマンドを駆使することになります。
また、キャッシュを制御する HTTP HEADER パラメータ(Cache-Control、Expires、ETAG)等も知っておく必要があります。