2011年8月30日火曜日

VarnishでELBヘルスチェックに対応させる

スズキです。

バックエンド関係無しに対応させる方法です。
といってもVarnishで、ELBにてヘルスチェック用に指定したパス(/healthcheck.txt)が、
ステータス200で返るようにすればOKです。

設定ファイル(/etc/varnish/default.vcl)は下記のような感じです。

backend default {
  .host = "www.suz-lab.com";
  .port = "80";
}
sub vcl_recv {
    if (req.url == "/healthcheck.txt") {
        return (error);
    }
    return (lookup);
}
sub vcl_error {
    set obj.http.Content-Type = "text/plain; charset=utf-8";
    if (req.url == "/healthcheck.txt") {
      set obj.status = 200;
      synthetic {"healthcheck"};
    }
    return (deliver);
}

これで"/healthcheck.txt"へのアクセスはVarnishが生きている限り、
とにかくステータス200を返すようになり、ELBから切り離されなくなります。

次はFacebook用Varnishかな。
--------
http://www.suz-lab.com

0 コメント: