2012-11-10 12 views
8

यहाँ मेरी कॉन्फ़िग फ़ाइल हैप्रमाणीकरण के साथ HAProxy Solr healthcheck

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

थोड़ा देर हो चुकी है, लेकिन मैं बस एक ही समस्या में आया, और दुनिया के साथ समाधान साझा करना चाहता था। सबसे पहले, आप बेस 64-सांकेतिक शब्दों में बदलना साख:

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

option httpchk आप के लिए मनमाने ढंग से HTTP हेडर को जोड़ने के लिए अनुमति देता है (आप -n स्विच का उपयोग करें ताकि आप एक नई पंक्ति संलग्न नहीं है सुनिश्चित करें।)

निवेदन; यह सुविधा बहुत अच्छी तरह से प्रलेखित नहीं है। (HAProxy के this discussion, भविष्य के संस्करणों के अनुसार एक और अधिक उपयोगकर्ता के अनुकूल विधि मिल सकता है।) बुनियादी प्रमाणीकरण का उपयोग करने के लिए:

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

ध्यान दें कि मैं HTTP 1.0 इस्तेमाल किया; 1.1 के लिए, आपको होस्ट हेडर की भी आवश्यकता है।

+0

पूरी तरह से काम करता है। यह कभी भी देर से बेहतर नहीं है :) –

+0

तीन साल बाद, यह अभी भी सहायक है। धन्यवाद! +1 –

संबंधित मुद्दे