У меня есть 2 сервера (A и B) для одного и того же бэкэнда с одним в качестве резервного, но эти серверы зависят от работы двух других серверов (A и B), по одному на каждый сервер: сервер A можно использовать, если сервер A работает и если сервер A 'работает, сервер B может использоваться, если сервер B работает, а сервер B' работает.
Пока я не могу сказать haproxy «использовать сервер A, если сервер A работает, и если сервер A 'работает»?
Пример:
backend foo
option httpchk
server A 10.99.98.97:8001 check inter 10s rise 2 fall 5
server B 10.99.98.96:8001 check inter 10s rise 2 fall 5 backup
backend bar
option httpchk
server A' 10.99.98.95:8001 check inter 10s rise 2 fall 5
server B' 10.99.98.94:8001 check inter 10s rise 2 fall 5 backup
Если A 'не работает, я больше не могу использовать A, но haproxy не знает этого с этими тестами (мне действительно не нужен бэкэнд-бар, он просто показывает, в чем проблема) ... Для разных Причины, я не могу использовать конкретный путь для проверки сервера A 'из теста A:
backend foo
option httpchk GET /url_on_A_which_checks_A'
server A 10.99.98.97:8001 check inter 10s rise 2 fall 5..
Интересно, возможно ли с помощью lua проверить два разных сервера, прежде чем считать, что сервер "работает"? Я не хочу делать тест для каждого входящего запроса в разделе внешнего интерфейса, например (проблема производительности) ...
Я представляю что-то вроде:
backend foo
option lua.check
server A 10.99.98.97:8001 lua.check inter 10s rise 2 fall 5..
С запросом на порт 8001 на A и на A 'в lua.check ...
Извините за мой английский,
Спасибо