अधिकांश सेल्फ़-होस्टेड ऐप 127.0.0.1:3000 जैसे लोकल पोर्ट पर सुनते हैं और सादा HTTP बोलते हैं। एक रिवर्स प्रॉक्सी आगे पोर्ट 80/443 पर खड़ा होता है, एक असली प्रमाणपत्र से HTTPS समाप्त करता है और ट्रैफ़िक को उस लोकल पोर्ट पर भेजता है — आपको एक साफ़ https://app.yourdomain.com देता है और एक ही IP के पीछे कई ऐप चलाने देता है। यहाँ दोनों आम तरीके हैं।
पूर्वापेक्षाएँ
- एक डोमेन जिसका A रिकॉर्ड आपके सर्वर के IP की ओर इंगित करता हो (DNS प्रसार की प्रतीक्षा करें)।
- पोर्ट 80 और 443 खुले — देखें UFW फ़ायरवॉल कैसे सेट करें।
- आपका ऐप लोकल रूप से चल रहा हो, उदाहरण के लिए
127.0.0.1:3000पर।
विकल्प A — Caddy (स्वचालित HTTPS, एक पंक्ति)
sudo apt install -y caddy
echo 'app.yourdomain.com { reverse_proxy 127.0.0.1:3000 }' | sudo tee /etc/caddy/Caddyfile
sudo systemctl restart caddy
बस इतना ही — Caddy डोमेन के लिए एक Let's Encrypt प्रमाणपत्र प्राप्त करता है और उसे स्वतः नवीनीकृत करता है।
विकल्प B — nginx + Certbot
sudo apt install -y nginx certbot python3-certbot-nginx
/etc/nginx/sites-available/app बनाएँ:
server {
listen 80;
server_name app.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
इसे सक्षम करें और HTTPS जोड़ें:
sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d app.yourdomain.com
Certbot HTTPS परोसने के लिए कॉन्फ़िग संपादित करता है और स्वचालित नवीनीकरण सेट करता है।
ईमानदार चेतावनियाँ
- DNS और पोर्ट सामान्य विफलताएँ हैं। A रिकॉर्ड यहाँ इंगित करना चाहिए और प्रसारित हो चुका हो, और 80/443 पहुँच-योग्य हों, वरना प्रमाणपत्र जारी होना विफल होगा। ठीक होते ही दोनों उपकरण फिर से प्रयास करते हैं।
- केवल वही उजागर करें जो आप चाहते हैं। ऐप को
127.0.0.1से बँधा रखें ताकि वह केवल प्रॉक्सी के ज़रिए पहुँच-योग्य हो, सीधे नहीं। - HTTPS को एक डोमेन चाहिए, नंगा IP नहीं — Let's Encrypt नामों के लिए जारी करता है।
अगले कदम
रिवर्स प्रॉक्सी ही वह चीज़ है जो एक सर्वर को कई चीज़ें परोसने देती है — देखें एक ही IP के पीछे कई सेवाओं की सेल्फ़-होस्टिंग। ऐप को कंटेनर में चला रहे हैं? Docker कैसे इंस्टॉल करें से शुरू करें। ऐप को रीस्टार्ट और क्रैश के बावजूद चालू रखने के लिए, देखें systemd सेवा कैसे बनाएँ।
टिप्पणियाँ
अभी तक कोई टिप्पणी नहीं। पहले बनें।