Haproxy solr healthcheck with authentication

时间:2012-11-10 20:38:58

标签: haproxy

这是我的配置文件

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在运行状况检查期间使用这些凭据?

1 个答案:

答案 0 :(得分:16)

有点晚了,但我遇到了同样的问题,并希望与全世界分享解决方案。首先,您对凭证进行了64位编码:

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

(确保使用-n开关,因此不附加换行符。)

option httpchk允许您向请求添加任意HTTP标头;此功能未得到很好的记录。 (根据this discussion,未来版本的Haproxy可能会获得更加用户友好的方法。)使用基本身份验证:

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

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