Возможно ли в Varnish 3 настроить бэкэнд на несколько зондов?
У меня есть несколько серверов Varnish и несколько внутренних серверов под управлением Drupal. Я настроил базовый файл PHP проверки работоспособности с интервалом в 1 секунду для проверки работоспособности сервера приложений, но я также хотел бы использовать проверку работоспособности для стека Drupal, однако эта проверка должна выполняться реже, чем базовая проверка работоспособности. например: Каждые 5 секунд он может проверять стек Drupal.
Можно ли в таком случае использовать 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}
Зонд просто проверяет возвращенный заголовок. Таким образом, вы можете получить скрипт /probe.php
который сначала отправляет запрос на /healthcheck.php
а потом еще один index.php
.
Внутри /probe.php
ты можешь использовать $headers = get_headers($url,1);
и проанализируйте код возврата 40X или 50X для каждого URL-адреса.
В конце:
if($atleastOneOfTheUrlsReturnedSomeThingBad){
header('HTTP/1.0 404 Not Found');
}
else{
header( "HTTP/1.1 200 OK" );
}
exit();
Быстрый ответ: нет.
Более длинный ответ: вы можете указать столько бэкэндов для одного реального бэкэнд-сервера, и каждый может иметь свой собственный зонд. Затем вы можете направлять к ним трафик по своему усмотрению.
Вы также можете вызвать что-то вроде сценария «проверки-проверки» на сервере приложений через вызов проверки, который может выполнять свои собственные проверки статуса. В любом случае вы просто вызываете скрипт php / python / etc, так что это может быть созданный вами скрипт.
Здесь есть еще (не совсем актуальное): https://www.varnish-cache.org/lists/pipermail/varnish-misc/2011-October/021298.html