Отправить настоящий заголовок Host для httpchk в HAProxy - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь выполнить проверки http (уровень 7) для отслеживания состояния бэкенда в балансировщике нагрузки HAProxy.У меня настроено 3 бэкэнда, каждое из которых имеет собственное имя.Текущая конфигурация выглядит следующим образом:

backend apiservers
  balance                 leastconn
  mode                    http
  option                  httpchk GET /healthz HTTP/1.0\r\nAuthorization:\ Bearer\ SOME_TOKEN_HERE
  http-check              disable-on-404
  http-check              expect rstring ^ok
  server                  core1 core1.cloud:443 ssl check
  server                  core2 core2.cloud:443 ssl check
  server                  core3 core3.cloud:443 ssl check

Проблема в том, что я не могу переключиться на HTTP / 1.1, потому что не смог найти способ передать настоящий заголовок Host с запросами httpchk.Использование некоторой произвольной фиктивной строки хоста может вызвать проблемы в функции, поэтому мне нужно передать соответствующее имя хоста бэкэнда в заголовок хоста.Такие параметры, как http-request add-header Host %[src] и http-send-name-header Host в серверной части, похоже, не влияют на механизм httpchk.Есть идеи?

1 Ответ

0 голосов
/ 11 декабря 2018

В соответствии с haproxy docs вы можете настроить заголовок в строке httpchk.Пример из документов:

# Relay HTTPS traffic to Apache instance and check service availability 
 # using HTTP request "OPTIONS * HTTP/1.1" on port 80. 
backend https_relay
  mode tcp
  option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www 
  server apache1 192.168.1.1:443 check port 80
...