2017-12-02 13 views
10

के पीछे एक एप्लिकेशन के साथ एक रिवर्स प्रॉक्सी के रूप में हैप्रोक्सी का उपयोग करें, मुझे आंतरिक रूप से होस्ट किए गए यूआरएल के तहत कई वेब एप्लिकेशन ऑन-प्रिमाइज और ऑफ़-साइट को एकीकृत करने की आवश्यकता है। ऑन-प्रिमाइसेस एप्लिकेशन उसी डेटा सेंटर में हैप्रोक्सी के रूप में हैं, लेकिन ऑफ़-साइट एप्लिकेशन केवल http प्रॉक्सी के माध्यम से पहुंचा जा सकता है क्योंकि जिस सर्वर पर हैप्रॉक्स चल रहा है, उसका कोई प्रत्यक्ष इंटरनेट एक्सेस नहीं है। इसलिए मुझे एक http इंटरनेट प्रॉक्सी का उपयोग करना है, सॉक्स एक विकल्प भी हो सकता है।इंटरनेट प्रॉक्सी

मैं कैसे कह सकता हूं कि बैकएंड केवल प्रॉक्सी के माध्यम से पहुंचा जा सकता है? मैं सॉक्सिफ़/प्रॉक्सीफायर/प्रॉक्सीकेन्स/सूक्स/जैसे अतिरिक्त घटक का उपयोग करूंगा ... क्योंकि यह अतिरिक्त ओवरहेड पेश करता है।

इस तस्वीर सेटअप में शामिल घटकों पता चलता है: haproxy setup with proxy

जब मैं सीधा इंटरनेट कनेक्शन के साथ एक मशीन पर इस चलाने मैं इस config का उपयोग कर सकते हैं और यह सिर्फ ठीक काम करता है:

frontend main 
    bind *:8000 
    acl is_extweb1 path_beg -i /policies 
    acl is_extweb2 path_beg -i /produkte 

    use_backend externalweb1 if is_extweb1 
    use_backend externalweb2 if is_extweb2 

backend externalweb1 
    server static www.google.com:80 check 

backend externalweb2 
    server static www.gmx.net:80 check 

(स्पष्ट रूप से ये वे यूआरएल नहीं हैं जिनसे मैं बात कर रहा हूं, यह सिर्फ एक उदाहरण है)

हैप्रोक्सी बाहरी अनुप्रयोगों और मार्गों की जांच करने में सक्षम है उन्हें यातायात:

HAproxy stats page

कंपनी मैं मैं पर काम का सुरक्षित माहौल में एक प्रॉक्सी का उपयोग करने के लिए है और haproxy बाहरी अनुप्रयोगों से कनेक्ट करने में असमर्थ है। मैं एक सामान्य http पृष्ठ/ब्राउज़र के माध्यम से उन्हें उपलब्ध कराने के दौरान http प्रॉक्सी (कोई प्रमाणीकरण आवश्यक) के पीछे उन बाहरी वेब अनुप्रयोग सर्वरों का उपयोग करने के लिए हैप्रोक्सी को कैसे सक्षम कर सकता हूं?

उत्तर

3

मैं यह काम, लेकिन मैं वास्तव में haproxy दस्तावेज में कुछ भी नहीं मिला बनाने के लिए intrigued गया था, इसलिए मैं थोड़ा googled और पाया कि nginx चाल कर सकता है, लेकिन यह मेरे लिए नहीं किया है, थोड़ा के बाद Googleिंग के अधिक से अधिक मैं apache के लिए कॉन्फ़िगरेशन ढूंढने के लिए समाप्त हुआ।

Listen 80 

SSLProxyEngine on 

ProxyPass /example/ https://www.example.com/ 
ProxyPassReverse /example/ https://www.example.com/ 
ProxyRemote https://www.example.com/ http://corporateproxy:port 

ProxyPass /google/ https://www.google.com/ 
ProxyPassReverse /google/ https://www.google.com/ 
ProxyRemote https://www.google.com/ http://corporateproxy:port 

मैं काफी यकीन है कि nginx और यहां तक ​​कि HAProxy करने के लिए ... अगर मैं समय मैं अद्यतन करेगा खोजने के लिए प्रबंधन इस विन्यास का अनुवाद करने के लिए एक रास्ता होना चाहिए हूँ:

यहाँ महत्वपूर्ण हिस्सा है मेरे निष्कर्षों के साथ जवाब।

अपाचे आप भी कुछ मॉड्यूल सक्षम होना चाहिए काम करने के लिए, मैं एक बुनियादी डोकर विन्यास को दर्शाता है कि इस पर एक नज़र पूर्ण काम कर विन्यास को देखने के लिए के लिए स्वतंत्र महसूस के साथ एक github repository ऊपर डाल दिया।

4

इसके लिए प्रतिनिधि के रूप में प्रतिनिधि (http://delegate.org/documents/) का उपयोग करने के बारे में, एक विचार के रूप में।

haproxy -> delegate -f -vv -P127.0.0.1:8081 PROXY=<your-proxy>

http://delegate.org/delegate/Manual.shtml?PROXY

मैं जानता हूँ कि यह है कि सुरुचिपूर्ण नहीं है, लेकिन यह काम कर सकता था।

मैं एक स्थानीय व्यंग्य के साथ इस स्थापना का परीक्षण किया है और इस

echo 'GET http://www.php.net/' |curl -v telnet://127.0.0.1:8081

कर्ल कॉल simluates haproxy टीसीपी कॉल फोन कर्ल।

+1

मुझे लगता है कि यह मेरी जरूरत नहीं है। मुझे एक कर्ल http: // myserver.local/foo' करने की आवश्यकता होगी और इसे आंतरिक रूप से 'http (s): // www.google.com' * + * जैसी स्थैतिक साइट पर कॉल करना चाहिए यूआरएल का हिस्सा, इस मामले में '/ foo'। संक्षेप में: यह प्रॉक्सी को 'http (s): // www.google.com/foo' पर रिवर्स करना चाहिए और उस कोड को वापस करना चाहिए जैसे कि यह myserver.local द्वारा ही किया गया होगा। – Marged

+0

यह मूल पोस्ट को अलग करता है। जो आप जानते हैं वह एक होस्ट हेडर पुनः लिखना है जैसे 'http-response replace-header होस्ट www \ .google \ .com myserver \ .local' दस्तावेज़: http://cbonte.github.io/haproxy-dconv/1.8/configuration। एचटीएमएल # 4.2-एचटीएमएल-प्रतिक्रिया – Aleksandar

+0

मुझे लगता है कि मुख्य बिंदु प्रॉक्सी का उपयोग करने के लिए हैप्रोक्सी प्राप्त कर रहा है, बाकी भी महत्वपूर्ण है लेकिन बाद में आता है – Marged