Varnish1つで複数のサイトを動かそうとしたとき、普通に記述していくと複数サイトの設定が混在する読みづらいファイルになってしまいます。ここでは、設定をサイトごとに分離して分かりやすく記述する方法を紹介します。
実現方法
VCLでは同じ名前のサブルーチンが複数定義されている場合、コード中で出現した順で連結されるという機能があります。これとincludeを利用して、複数サイトの設定を分離します。
設定
sitesディレクトリにサイトごとの設定ファイルを用意しておき、default.vclで読み込みます。各サイト用の設定ファイルでは、req.http.hostの値を見て処理を行うようにします。
default.vcl
app-a.vcl
app-b.vcl
purge.vcl