2012-11-10 14 views
8

ecco il mio file di configurazioneHAProxy healthcheck solr con l'autenticazione

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 

il problema è che il mio server solr è protetto utilizzando l'autenticazione password di base http e quindi dello stato di salute non sempre

Come faccio a dire HAProxy usare quelle credenziali durante i controlli sanitari?

risposta

12

Un po 'in ritardo, ma mi sono imbattuto nello stesso problema e ho voluto condividere la soluzione con il mondo. In primo luogo, si base64 codificare le credenziali:

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

(Assicurarsi di utilizzare lo switch -n in modo da non si aggiunge un ritorno a capo.)

Il option httpchk consente di aggiungere intestazioni HTTP arbitrarie al richiesta; questa funzione non è documentata molto bene. (Secondo this discussion, future versioni di HAProxy potrebbe ottenere un metodo più user-friendly.) Per utilizzare l'autenticazione di base:

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

Nota che ho usato HTTP 1.0; per 1.1, è necessaria anche un'intestazione Host.

+0

funziona perfettamente. È meglio tardi che mai :) –

+0

Più di tre anni dopo, è ancora utile. Grazie! +1 –