होमलैब और सेल्फ़-होस्टिंग

Nginx Proxy Manager से एक सर्वर पर कई सेवाएँ

अगर एक ही सर्वर पर एक से ज़्यादा प्रोजेक्ट चलते हैं, तो देर-सबेर पोर्ट 80 और 443 से टकराव होता है, जिन्हें एक समय में केवल एक प्रोसेस सुन सकता है। Selectel ब्लॉग पर Habr का एक लेख चरण-दर-चरण दिखाता है कि Nginx Proxy Manager से इस समस्या को कैसे हल किया जाए।

लेखक पहले समस्या समझाते हैं: विशेषाधिकार वाले पोर्ट, 'एक पोर्ट पर एक लिसनर' का नियम, फ़्रंटेंड और बैकेंड को अलग पोर्ट पर रखने पर CORS की समस्या, और HTTPS का न होना। रिवर्स प्रॉक्सी बिचौलिए की तरह डोमेन और पाथ के आधार पर ट्रैफ़िक को रूट करके इसे हल करता है। एक और फ़ायदा यह है कि फ़ायरवॉल में केवल 22, 80 और 443 पोर्ट खोलने पड़ते हैं।

टेस्ट सेटअप एक VDS है जिसमें 2 vCPU, 2 GB RAM और 40 GB NVMe है, जिस पर Ubuntu 24.04 और आधिकारिक रिपॉज़िटरी से Docker चलता है। नेटवर्क docker network create proxy से बनाया जाता है, फिर डेटा और सर्टिफ़िकेट के वॉल्यूम के साथ jc21/nginx-proxy-manager कंटेनर शुरू होता है। मुझे अच्छा लगा कि 81 पोर्ट वाला एडमिन पैनल केवल 127.0.0.1 से बंधा है और SSH टनल से एक्सेस होता है।

इसके बाद प्रॉक्सी होस्ट सेट किया जाता है: Forward Hostname में कंटेनर का नाम लिखा जाता है, और SSL सर्टिफ़िकेट SSL टैब में जोड़ा जाता है। परीक्षण के लिए traefik/whoami इस्तेमाल होता है। जब ऐप सीधे होस्ट पर चलता हो, तो उस स्थिति को भी अलग से समझाया गया है: Docker नेटवर्क का गेटवे पता docker network inspect से मिलता है, और फ़ायरवॉल ऐसे सेट किया जाता है कि ऐप प्रॉक्सी को बायपास करके न पहुँचा जा सके।

कुछ कमियाँ भी हैं। उदाहरणों में अलग-अलग डोमेन मिले हुए हैं, और इमेज latest टैग से ली गई है, जिससे समय के साथ दोहराने की क्षमता कम हो सकती है। फिर भी जो लोग nginx कॉन्फ़िग हाथ से बदले बिना घर या VDS पर कई सेवाएँ चलाना चाहते हैं, उनके लिए यह अच्छा शुरुआती बिंदु है।

स्रोत: Habr (Selectel ब्लॉग)

टिप्पणियाँ 0

पहली टिप्पणी लिखिए, किसी भी भाषा में।

टिप्पणी करने के लिए लॉग इन करें