Varnish でリバースプロキシ

こちら でリバースプロキシについて説明しましたが、今回はこのリバースプロキシを実現する Varnish を紹介します。

Varnish 概要

Varnish はリバースプロキシサーバです。varnish はパフォーマンスに優れ apache の 10数倍とも言われています。varnish はユーザからのアクセスがあるとバックエンドと呼ばれる実際の Web サーバ(リアル Web サーバとも呼ばれます)に問い合わせを行い、可能な限りキャシュ(メモリでもファイルでも)します。

そしてその後のユーザアクセスはバックエンドへの問い合わせを行わず、キャッシュをそのまま返すので高速になります。

Varnish 関連リンク

以下に varnish 関連のリンクを記載します(varnish には日本語ドキュメントが余りありません)。

Varnish HP

http://www.varnish-cache.org/

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)等も知っておく必要があります。

Published by in Linux, Web 技術, スケーラビリティ, リバースプロキシ and 負荷分散 using 73 words.