Varnish configura um backend para ter várias sondas?

3

É possível no Varnish 3 configurar um backend para ter várias sondas?

Eu tenho vários servidores de verniz e vários servidores de back-end executando o Drupal. Eu configurei um arquivo PHP healthcheck de intervalo básico de 1 segundo para verificar a integridade do servidor de aplicativos, mas também gostaria de usar uma verificação de integridade para a pilha do Drupal, mas essa verificação precisaria ser executada com menos frequência que a verificação básica de integridade. por exemplo: a cada 5 segundos, ele pode verificar a pilha do Drupal.

É possível usar 2 testes separados em um único back-end para esse caso?

Configuração teórica:

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}
    
por Highway of Life 29.03.2013 / 22:47

2 respostas

1

Resposta rápida: não.

Resposta mais longa: você pode especificar quantos back-ends para um único servidor de back-end real e cada um pode ter seu próprio probe. Você pode então direcionar o tráfego para eles como quiser.

Você também pode chamar algo como um script de verificação de sondagem em seu servidor de aplicativos por meio da chamada de sondagem, o que poderia fazer suas próprias verificações de status. Você está apenas chamando um script php / python / etc, então pode ser um script que você criou.

Há mais (não totalmente relevante) aqui: link

    
por 13.08.2013 / 17:50
1

A sonda apenas verifica o cabeçalho retornado. Assim, você pode ter o script /probe.php que primeiro envia uma solicitação para /healthcheck.php e depois outra para index.php .

Dentro de /probe.php , você pode usar $headers = get_headers($url,1); e analisar um código de retorno de 40X ou 50X em cada um dos URLs.

No final:

if($atleastOneOfTheUrlsReturnedSomeThingBad){
  header('HTTP/1.0 404 Not Found');
}
else{
  header( "HTTP/1.1 200 OK" );
}
exit();
    
por 06.06.2016 / 21:19