2012-11-10 24 views
8

đây là tập tin cấu hình của tôiHAProxy Solr healthcheck với xác thực

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 

vấn đề là máy chủ Solr tôi được bảo vệ bằng mật khẩu xác thực http cơ bản và do đó việc kiểm tra sức khỏe luôn luôn thất bại

làm thế nào để nói với haproxy sử dụng các thông tin đăng nhập đó trong khi kiểm tra sức khỏe?

Trả lời

12

Một chút trễ, nhưng tôi chỉ gặp vấn đề tương tự và muốn chia sẻ giải pháp với thế giới. Trước tiên, bạn base64-mã hóa các thông tin:

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

(Hãy chắc chắn rằng bạn sử dụng công tắc -n do đó bạn không nối thêm một dòng mới.)

Các option httpchk cho phép bạn thêm tiêu đề HTTP tùy ý để các yêu cầu; tính năng này không được ghi lại rất tốt. (Theo this discussion, các phiên bản tương lai của HAProxy có thể nhận được một phương pháp sử dụng thân thiện hơn.) Để sử dụng xác thực cơ bản:

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

Lưu ý rằng tôi đã sử dụng HTTP 1.0; cho 1.1, bạn cũng cần tiêu đề Máy chủ.

+0

hoạt động hoàn hảo. Của nó tốt hơn muộn hơn không bao giờ :) –

+0

Hơn ba năm sau đó, điều này vẫn còn hữu ích. Cảm ơn! +1 –

Các vấn đề liên quan