2014-07-02 12 views
14

पर आधारित डॉकर कंटेनर पर रूट यातायात मेरे पास वाइल्डकार्ड डीएनएस मेरे सर्वर की ओर इशारा करता है उदा। * .domain.comसबडोमेन

मैं प्रत्येक सबडोमेन को अपने स्वयं के डॉकर कंटेनर पर रूट करना चाहता हूं। तो box1.domain.com उचित डॉकर कंटेनर पर जाता है। यह किसी भी यातायात के लिए मुख्य रूप से HTTP और एसएसएच के लिए काम करना चाहिए।

या शायद बंदरगाह सबडोमेन का हिस्सा हो सकता है उदा। 80.box1.domain.com। मेरे पास बहुत सारे डॉकर कंटेनर होंगे इसलिए समाधान प्रत्येक कंटेनर के लिए हार्ड-कोडेड गतिशील होना चाहिए।

उत्तर

5

का उपयोग करके http यातायात को रूट करने के लिए interlock के साथ चला गया। मैं प्रत्येक एसएसएच कनेक्शन के लिए एक यादृच्छिक बंदरगाह का उपयोग करने के लिए बस गया क्योंकि मैं इसे अकेले सबडोमेन का उपयोग करके काम नहीं कर सका।

0

अपाचे mod_rewrite RewriteMap विधि का उपयोग करना सबसे आसान समाधान होगा। पाठ फ़ाइल के खिलाफ उपयोग किए जाने पर यह बहुत ही प्रभावशाली होता है, लेकिन वांछित होने पर यह स्क्रिप्ट को कॉल कर सकता है। another StackOverflow answer है जो स्क्रिप्ट संस्करण को बहुत अच्छी तरह से कवर करता है।

यदि आप अपाचे से बचना चाहते हैं, तो डॉटक्लाउड पर अच्छे लोगों ने अपने पैस सेवाओं के लिए रूटिंग करने के लिए हिपाचे बनाया। वे documented the different things उन्होंने अपना स्वयं का समाधान बनाने से पहले कोशिश की। मुझे docher कंटेनरों को रूट करने के लिए वास्तव में hipache का उपयोग करके tsuru.io का संदर्भ मिला, ताकि यह निश्चित रूप से इस उद्देश्य के लिए मान्य हो।

+0

यहां tsuru.io का एक लिंक है जिसका उल्लेख मैंने किया है: [tsuru.io] (http://docs.tsuru.io/en/0.4.0/provisioners/docker/architecture.html)। –

+0

इसके अलावा, यहां nginx और dnsmasq के साथ गतिशील रिवर्स प्रॉक्सीइंग करने पर कुछ जानकारी दी गई है, हालांकि मुझे थोड़ा अजीब लगता है: [nginx + dnsmasq] (http://www.cmdln.org/2009/07/12/transparent_dynamic-reverse -proxy-with-nginx /) –

+1

इसके अलावा निम्न स्टैक ओवरफ्लो प्रश्न पर एक नज़र डालें: http://stackoverflow.com/questions/18497564/assigning-vhosts-to-docker-ports?rq=1 –

1

एक और समाधान https://github.com/jwilder/nginx-proxy का उपयोग करना होगा।

यह उपकरण स्वचालित रूप से उचित कंटेनर (VIRTUAL_HOST कंटेनर वातावरण चर के माध्यम से उप डोमेन के आधार पर) के लिए अनुरोध अग्रेषित करता है।

उदाहरण के लिए, यदि आप एक कंटेनर पर रीडायरेक्ट करने box1.domain.com चाहते हैं, बस VIRTUAL_HOST कंटेनर वातावरण चर करने के लिए "box1.domain.com" की स्थापना की।

यहां एक विस्तृत ट्यूटोरियल मैंने लिखा है: http://blog.florianlopes.io/host-multiple-websites-on-single-host-docker

+0

जानना अच्छा है, जो इंटरलॉक करने के समान तरीके से काम करता है। क्या यह एसएसएच की सुविधा देता है? –

+0

हां ऐसा लगता है। मुझे नहीं पता कि यह एसएसएच की सुविधा कैसे दे सकता है क्योंकि Nginx-proxy HTTP अनुरोधों को संभालता है। –

+0

यदि आप सबडोमेन का उपयोग करके अपने डॉकर कंटेनर में एसएसएच करना चाहते हैं, तो मुझे लगता है कि आप अपने होस्ट आईपी पर इंगित एक CNAME DNS नियम जोड़ सकते हैं। एसएसएच कंटेनर पोर्ट को होस्ट करने के लिए एक्सपोज़ करना (इसलिए सार्वजनिक रूप से), आइए 1020 कहें, आपको एसएसएच को अपने सबडोमेन का उपयोग करके अपने कंटेनर में अनुमति देगा: ssh -p 1020 sub.domain.com। –

1

मेरा उत्तर देर से आ सकता है लेकिन जब आप डॉकर का उपयोग करते हैं तो आपको वास्तव में अपने कंटेनरों से कनेक्ट करने के लिए एसएसएच की आवश्यकता नहीं होती है। docker exec कमांड के साथ, आप सीधे अपने चल रहे कंटेनर में खोल कमांड चला सकते हैं।

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

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