2012-11-10 123 views
8

這裏是我的配置文件HAProxy的Solr的健康檢查

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的在健康檢查期間使用這些憑據?

回答

12

有點晚了,但我剛剛遇到同樣的問題,並希望與世界分享解決方案。首先,你的Base64編碼憑據:

$ 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,你還需要一個主機頭。

+0

完美。它比晚起更好:) –

+0

超過三年後,這仍然有幫助。謝謝! +1 –