У меня есть два бэкенда для конфигурации Varnish. Первый бэкэнд работает нормально, второй бэкэнд, кажется, полностью игнорируется Varnish. Похоже, что .probe
на втором бэкэнд игнорируется в том смысле, что он никогда не пытается запросить бэкэнд-сервер. Я говорю это, потому что tcpdump
а журналы на внутреннем сервере не показывают трафика вообще.
Обычный curl
ко второму внутреннему серверу работает хорошо.
У меня есть следующая конфигурация сервера Varnish.
vcl 4.0;
# import directors VMOD
import directors;
# define backend servers
backend apitomcat01 {
.host = "apitomcat1";
.port = "8080";
.probe = {
.timeout = 5s;
.interval = 10s;
.window = 10;
.threshold = 3;
.request =
"HEAD /api3/health HTTP/1.1"
"User-Agent: varnish-health"
"Host: apitomcat1:8080"
"Connection: Close"
"Accept: */*"
"Authorization: Basic ABCDEFGH";
}
}
backend apitomcat02 {
.host = "apitomcat2";
.port = "8081";
.probe = {
.timeout = 5s;
.interval = 10s;
.window = 10;
.threshold = 3;
.request =
"HEAD /api3/health HTTP/1.1"
"User-Agent: varnish-health"
"Host: apitomcat2:8081"
"Connection: Close"
"Accept: */*"
"Authorization: ABCDEFGH";
}
}
# create tomcat director
sub vcl_init {
new tomcat = directors.round_robin();
tomcat.add_backend(apitomcat01);
tomcat.add_backend(apitomcat02);
}
sub vcl_recv {
# send all traffic to the tomcat director:
set req.backend_hint = tomcat.backend();
# pass all traffic - do not perform any caching for now
return (pass);
}
* Умышленно, что apitomcat01 и apitomcat02 используют разные порты.
Почему зонд apitomcat02 никогда не отправляет никаких запросов на apitomcat2? Когда я бегу tcpdump -P inout | grep "apitomcat2"
Ничего не произошло. Я ожидал увидеть хотя бы пробные запросы.
Когда я бегу backend.list
, Я получаю следующее.
200
Backend name Refs Admin Probe
apitomcat01(192.168.41.51,,8080) 2 probe Healthy 10/10
apitomcat02(192.168.41.52,,8081) 1 probe Sick 0/10
Когда я запускаю debug.health, я получаю следующее.
200
Backend apitomcat01 is Healthy
Current states good: 10 threshold: 3 window: 10
Average responsetime of good probes: 0.068237
Oldest Newest
================================================================
4444444444444444444444444444444444444444444444444444444444444444 Good IPv4
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Good Xmit
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR Good Recv
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH Happy
Backend apitomcat02 is Sick
Current states good: 0 threshold: 3 window: 10
Average responsetime of good probes: 0.000000
Oldest Newest
================================================================
---------------------------------------------------------------- Happy