通过 http 进行 HAProxy 代理检查

通过 http 进行 HAProxy 代理检查

我必须使用 agent-check 设置 haproxy,后端服务器通过 http 报告自己的权重(例如“28%”)。似乎 haproxy 无法通过 http 与其代理通信,这似乎很奇怪。没有办法吗?

我尝试过这个:

   server X X:80 agent-check agent-port 80 agent-send "GET /some/url HTTP/1.0\r\n" check observe layer7

这可能有效也可能无效,我其实不知道。有什么方法可以判断代理检查是否成功?统计页面似乎不会改变 URL 是否有效。我猜它不起作用,因为 haproxy 肯定只期望值,而不是它周围的任何 http。

答案1

我同意,我不认为它理解 HTTP,尽管我很乐意得到纠正...有人知道吗?

更新:我尝试了这个但是即使你请求的只是一个带有“准备就绪 88%”的文本文件它似乎也不起作用...你会得到这个我猜只是令人困惑:

HTTP/1.1 200 OK
Date: Sat, 28 Jul 2018 14:22:20 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Sat, 28 Jul 2018 14:14:31 GMT
ETag: "9-5720fd8d9795b"
Accept-Ranges: bytes
Content-Length: 9
Content-Type: text/plain; charset=UTF-8

ready 88%

HTTP 兼容性将是一个合理的功能请求!也许可以将其发送到邮件列表。我不一定了解您的确切用例,但您是否考虑过使用像这样的预构建代理:

https://www.loadbalancer.org/blog/open-source-windows-service-for-reporting-server-load-back-to-haproxy-load-balancer-feedback-agent/

该代码是 GPL,因此可以进行修改以满足超出其现有功能的任何要求。

相关内容