###本項はLumen Edge Application DeliveryでのVarnishについての記述です
https://lumen-28.hubspotpagebuilder.com/lumen-technologies-japan/lumen-edge-cloud-app-delivery
#ヘルスチェック(Health checks)
複数のオリジンサーバを用いて冗長化構成を取る際、CloudfrontなどではOrigin Connection Attemptsというリトライ回数指定条件がありますが、Varnishではヘルくチェックを用いて判断を行います:
backend server1 {
.host = "server1.example.com";
.probe = {
.url = "/";
.timeout = 1s;
.interval = 5s;
.window = 5;
.threshold = 3;
}
}
backend server2 {
.host = "server2.example.com";
.probe = {
.url = "/";
.timeout = 1s;
.interval = 5s;
.window = 5;
.threshold = 3;
}
}
上記の場合
.url = "/"; TOPディレクトリに対してポーリング(GET)を行う
.timeout = 1s; タイムアウトは1秒
.interval = 5s; 5秒おきにオリジン側にヘルスチェック
そして下記が発動条件となります
.window = 5; 5回のポーリングGETのうち
.threshold = 3; 3回OKであればサーバは活動中とする、それ以下であればNG
という事になります。
次に‘director’設定を行い死活監視NGとなった場合にはトラフィックを送らないという設定を行います:
sub vcl_init {
new vdir = directors.round_robin();
vdir.add_backend(server1);
vdir.add_backend(server2);
}
Varnishでは上記すべてのサーバがDOWNしている場合はGrace modeやKeepと合わせて、現在持ち合わせているキャッシュコンテンツでレスポンスを続けることが可能です。