Haproxy solr healthcheck with authentication

San*_*pta 10 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
Run Code Online (Sandbox Code Playgroud)

问题是我的solr服务器使用基本的http密码身份验证进行保护,因此运行状况检查始终失败

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

Mik*_*zak 16

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

$ echo -n "user:pass" | base64
dXNlcjpwYXNz
Run Code Online (Sandbox Code Playgroud)

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

option httpchk让你随心所欲的HTTP标头添加到该请求; 此功能未得到很好的记录.(根据此讨论, Haproxy的未来版本可能会获得更加用户友好的方法.)要使用基本身份验证:

option httpchk GET /solr/ HTTP/1.0\r\nAuthorization:\ Basic\ dXNlcjpwYXNz
Run Code Online (Sandbox Code Playgroud)

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