−25%

Windows के सालाना भुगतान पर, 31 अक्टूबर तक। प्लान देखें

EQVPS
शुरू करें

HTTPS के साथ nginx रिवर्स प्रॉक्सी कैसे सेट करें

किसी भी लोकल पोर्ट पर सुनने वाले ऐप के सामने एक साफ़ डोमेन और स्वचालित HTTPS लगाएँ। दो तरीके: Certbot के साथ nginx, या एक पंक्ति में स्वचालित TLS के लिए Caddy. चरण-दर-चरण, कॉपी करने के लिए तैयार कॉन्फ़िग के साथ।

अधिकांश सेल्फ़-होस्टेड ऐप 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 सेवा कैसे बनाएँ।

डोमेन को अपने VPS पर कैसे पॉइंट करें (A, AAAA और www) →

सामान्य प्रश्न

रिवर्स प्रॉक्सी क्या है और मुझे इसकी ज़रूरत क्यों है?

आपका ऐप आमतौर पर 127.0.0.1:3000 जैसे लोकल पोर्ट पर सुनता है। रिवर्स प्रॉक्सी आगे पोर्ट 80/443 पर खड़ा होता है, HTTPS को समाप्त करता है और अनुरोधों को उस लोकल पोर्ट पर भेजता है। यह आपको एक साफ़ डोमेन, एक मान्य TLS प्रमाणपत्र, और एक ही IP के पीछे कई ऐप चलाने की क्षमता देता है — और यह सब ऐप को खुद नहीं करना पड़ता।

nginx या Caddy — कौन-सा चुनूँ?

Caddy सबसे तेज़ रास्ता है: यह Let's Encrypt प्रमाणपत्र स्वतः प्राप्त और नवीनीकृत करता है, और एक चालू HTTPS प्रॉक्सी बस एक पंक्ति का कॉन्फ़िग है। nginx अधिक जाना-पहचाना और लचीला है, पर TLS के लिए आप Certbot जोड़ते हैं। कम से कम झंझट में HTTPS चाहिए तो Caddy लें; nginx पहले से जानते हैं या उसकी सुविधाएँ चाहिए तो nginx लें।

क्या मुझे डोमेन चाहिए?

एक भरोसेमंद HTTPS प्रमाणपत्र के लिए, हाँ — Let's Encrypt डोमेन नामों के लिए प्रमाणपत्र जारी करता है, नंगे IP के लिए नहीं। एक A रिकॉर्ड को अपने सर्वर के IP पर इंगित करें, DNS प्रसार की प्रतीक्षा करें, फिर प्रॉक्सी उस नाम के लिए प्रमाणपत्र प्राप्त कर सकता है।

कौन-से पोर्ट खुले होने चाहिए?

आवक 80 और 443. पोर्ट 80 आरंभिक प्रमाणपत्र चुनौती और HTTPS पर रीडायरेक्ट के लिए उपयोग होता है; 443 एन्क्रिप्टेड ट्रैफ़िक परोसता है। दोनों को अपने फ़ायरवॉल में खोलें (UFW गाइड देखें) और सुनिश्चित करें कि कोई और चीज़ पहले से उन्हें न घेरे हो।

प्रमाणपत्र जारी होना विफल क्यों होता है?

लगभग हमेशा DNS या पोर्ट। डोमेन का A रिकॉर्ड इस सर्वर की ओर इंगित करना चाहिए और प्रसारित हो चुका हो, और पोर्ट 80/443 पहुँच-योग्य हों (फ़ायरवॉल में खुले, ऊपर की ओर अवरुद्ध नहीं)। इन दोनों को ठीक करें और जारी होना सफल हो जाता है; Caddy और Certbot दोनों फिर से प्रयास करते हैं।

टिप्पणियाँ

अभी तक कोई टिप्पणी नहीं। पहले बनें।

एक टिप्पणी छोड़ें

टिप्पणियाँ दिखने से पहले मॉडरेट की जाती हैं।