4

嗨,我正在使用 haproxy 对我的 https 连接进行负载平衡。我想做积极的健康检查,但它们似乎不起作用。欢迎任何有关如何正确编写以下内容的提示。我让它们在 http 端口 80 连接上工作得很好。

frontend incoming_https
  bind *:443
  mode tcp
  default_backend web_https

backend web_https
    mode tcp
    option httpchk GET / HTTP/1.1\r\nHost:\ https://www.mysite.com
    server web-0 xxx.xxx.xxx.xxx:443 check inter 5000 port 443
4

2 回答 2

8

是的,您可以在 tcp 模式下使用选项 httpchk。这是在 ssl 后面的页面上搜索字符串的必要选项:

mode tcp
option httpchk GET /<URI>
http-check expect string <STRING\ WITH\ SPACES\ ESCAPED>
server <YOUR_SERVER_FQDN>:443 <YOUR_SERVER_IP>:443 check ssl verify none

例如,要检查 login.html 页面中的“用户名”字符串:

mode tcp
option httpchk GET /login.html
http-check expect string User\ Name
server www.example.com:443 192.168.1.1:443 check ssl verify none

请注意,“检查 ssl 验证无”是必需的,并且搜索字符串中的任何空格都必须使用 \ 进行转义。

于 2016-11-12T01:37:09.080 回答
2

您不能option httpchk在 tcp 模式下使用。

您可能需要继续阅读option ssl-hello-chk

于 2013-05-31T04:51:01.487 回答