Varnish 3で、複数のプローブを持つようにバックエンドを構成することは可能ですか?
Drupalを実行している複数のワニスサーバーと複数のバックエンドサーバーがあります。アプリケーションサーバーの状態を確認するために、基本的な1秒間隔のヘルスチェックPHPファイルを構成しましたが、Drupal =スタック。ただし、このチェックは基本的なヘルスチェックよりも実行頻度が低くなります。例:5秒ごとにDrupalスタックをチェックできます。
このような場合、1つのバックエンドで2つの別々のプローブを使用することは可能ですか?
理論的構成:
probe healthcheck {
.url = "/healthcheck.php";
.interval = 1s;
.timeout = 100 ms;
.window = 5;
.threshold = 5;
}
probe drupalcheck {
.url = "/index.php";
.interval = 5s;
.timeout = 5s;
.window = 5;
.threshold = 5;
}
backend Apache_1 {.Host = "server01"; .port = "8080"; .probe = healthcheck; .probe = drupalcheck}
backend Apache_2 {.Host = "server02"; .port = "8080"; .probe = healthcheck; .probe = drupalcheck}
backend Apache_3 {.Host = "server03"; .port = "8080"; .probe = healthcheck; .probe = drupalcheck}
クイックアンサー:いいえ。
長い答え:1つの実際のバックエンドサーバーにいくつでもバックエンドを指定でき、それぞれに独自のプローブを設定できます。その後、必要に応じてトラフィックをそれらにルーティングできます。
また、プローブ呼び出しを介してアプリケーションサーバーで「プローブチェック」スクリプトのようなものを呼び出すこともできます。これにより、独自のステータスチェックを実行できます。とにかくphp/python/etcスクリプトを呼び出しているだけなので、作成したスクリプトにすることができます。
ここにはもっと(完全に関連しているわけではありません)があります: https://www.varnish-cache.org/lists/pipermail/varnish-misc/2011-October/021298.html
プローブは、返されたヘッダーをチェックするだけです。したがって、最初に_/probe.php
_に要求を送信し、その後_/healthcheck.php
_に別の要求を送信するohneスクリプト_index.php
_を使用できます。
_/probe.php
_内では、$headers = get_headers($url,1);
を使用して、各URLの40倍または50倍の戻りコードを分析できます。
最後に:
_if($atleastOneOfTheUrlsReturnedSomeThingBad){
header('HTTP/1.0 404 Not Found');
}
else{
header( "HTTP/1.1 200 OK" );
}
exit();
_