Fazendo o HAProxy passar um nome de host no HTTPCHECK

2

Estou tentando realizar verificações de HTTP em HAProxy com um nome de host específico.

Aqui está um trecho da minha configuração de back-end:

option httpchk HEAD / HTTP/1.1\r\nHost: example.com
http-check expect rstatus (2)[0-9][0-9]

Quando vejo os logs do IIS no servidor que está sendo verificado, o nome do host ( cs-host ) está em branco:

#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2016-04-15 20:24:09 W3SVC3 123.123.123.123 HEAD / - 80 - 456.456.456.456 - - - 302 0 0 365 45 14

Comparado a uma solicitação de um navegador, em que o nome do host é visível:

#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2016-04-15 12:29:18 W3SVC3 123.123.123.123 GET / - 80 - 456.456.456.456 Mozilla/5.0+(Windows+NT+6.3;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko - example.com 302 0 0 397 249 1959

Estou usando o HA-Proxy versão 1.5.14 2015/07/02

Como faço para que o HAProxy envie um nome de host com o HTTP Check?

    
por Fenton 15.04.2016 / 22:33

1 resposta

3

Talvez seja necessário escapar do espaço antes de "example.com", ou seja,

option httpchk HEAD / HTTP/1.1\r\nHost:\ example.com

Observe a barra invertida antes de "example.com". Como alternativa, você pode tentar adicionar:

http-send-name-header Host

nessa configuração de backend.

Espero que isso ajude!

    
por 16.04.2016 / 17:58