11

这是我的配置文件

listen  solr 0.0.0.0:8983
mode http
balance roundrobin
option httpchk GET "/solr/select/?q=id:1234" HTTP/1.1
server solr_slave 1.1.1.1:8983 maxconn 5000 weight 256 check
server solr_master 2.2.2.2:8983 maxconn 5000 weight 1 check

问题是我的 solr 服务器使用基本的 http 密码身份验证进行保护,因此健康检查总是失败

我如何告诉 haproxy 在健康检查期间使用这些凭据?

4

1 回答 1

19

有点晚了,但我刚刚遇到了同样的问题,并想与世界分享解决方案。首先,您对凭据进行 base64 编码:

$ echo -n "user:pass" | base64
dXNlcjpwYXNz

(确保使用 -n 开关,以免添加换行符。)

允许您向option httpchk请求添加任意 HTTP 标头;此功能没有很好地记录。(根据这个讨论,未来版本的 Haproxy 可能会获得一种对用户更友好的方法。)要使用基本身份验证:

option httpchk GET /solr/ HTTP/1.0\r\nAuthorization:\ Basic\ dXNlcjpwYXNz

请注意,我使用的是 HTTP 1.0;对于 1.1,您还需要一个 Host 标头。

于 2013-02-28T22:02:51.600 回答