2012-11-10 38 views
8

tutaj jest mój plik konfiguracyjnyHAProxy solr Healthcheck z uwierzytelnianiem

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 

problemem jest to, że mój serwer solr jest chroniony za pomocą uwierzytelnianie podstawowe hasło http i stąd badania lekarskie nie zawsze

jak mogę powiedzieć haproxy używać tych poświadczeń podczas kontroli stanu zdrowia?

Odpowiedz

12

Trochę za późno, ale spotkałem się z tym samym problemem i chciałem podzielić się rozwiązaniem ze światem. Po pierwsze, base64 zakodować poświadczenia:

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

(Upewnij się użyć przełącznika -n więc nie dołączyć do nowej linii).

option httpchk pozwala na dodawanie nagłówków HTTP do arbitralnych żądanie; ta funkcja nie jest dobrze udokumentowana. (Według this discussion, przyszłych wersjach HAProxy może uzyskać bardziej przyjazny dla użytkownika sposób.) Aby użyć uwierzytelniania podstawowego:

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

Zauważ, że użyłem HTTP 1.0; dla wersji 1.1 potrzebny jest również nagłówek Hosta.

+0

działa idealnie. Lepiej późno niż wcale :) –

+0

Ponad trzy lata później jest to nadal pomocne. Dzięki! +1 –