web-dev-qa-db-ja.com

HAProxyにHTTPCHECKでホスト名を渡す

特定のホスト名を使用してHAProxyでHTTPチェックを実行しようとしています。

これが私のバックエンド設定のスニペットです:

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

チェック中のサーバーにIISログを表示すると、ホスト名(cs-Host)は空白です:

#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

ホスト名が表示されているブラウザからのリクエストと比較すると:

#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

HA-Proxyバージョン1.5.14を使用しています2015/07/02

HAProxyにHTTPチェックでホスト名を送信させるにはどうすればよいですか?

5
Fenton

「example.com」の前のスペースをエスケープする必要があるかもしれませんi.e。

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

「example.com」の前のバックスラッシュに注意してください。または、以下を追加してみてください。

http-send-name-header Host

そのバックエンド設定で。

お役に立てれば!

8
Castaglia