EQVPS

HTTPS کے ساتھ nginx ریورس پراکسی کیسے سیٹ اپ کریں

کسی بھی ایپ کے سامنے جو مقامی پورٹ پر سنتی ہے، ایک صاف ڈومین اور خودکار HTTPS رکھیں۔ دو راستے: Certbot کے ساتھ nginx، یا ایک لائن میں خودکار TLS کے لیے Caddy۔ مرحلہ وار، کاپی کرنے کے لیے تیار کنفیگ کے ساتھ۔

زیادہ تر سیلف ہوسٹڈ ایپس 127.0.0.1:3000 جیسے مقامی پورٹ پر سنتی ہیں اور سادہ HTTP بولتی ہیں۔ ایک ریورس پراکسی آگے پورٹ 80/443 پر کھڑی ہوتی ہے، ایک اصلی سرٹیفکیٹ سے HTTPS ختم کرتی ہے اور ٹریفک اُس مقامی پورٹ کو بھیجتی ہے — آپ کو ایک صاف https://app.yourdomain.com دیتی ہے اور ایک ہی IP کے پیچھے کئی ایپس چلانے دیتی ہے۔ یہ رہے دونوں عام راستے۔

پیشگی تقاضے

آپشن 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 فراہم کرنے کے لیے کنفیگ میں ترمیم کرتا ہے اور خودکار تجدید ترتیب دیتا ہے۔

ایماندارانہ انتباہ

اگلے قدم

ریورس پراکسی ہی وہ چیز ہے جو ایک سرور کو بہت کچھ فراہم کرنے دیتی ہے — دیکھیں ایک ہی IP کے پیچھے کئی سروسز کی سیلف ہوسٹنگ۔ ایپ کو کنٹینر میں چلا رہے ہیں؟ Docker کیسے انسٹال کریں سے شروع کریں۔ ایپ خود ری اسٹارٹ اور کریش کے باوجود زندہ رہے، اس کے لیے دیکھیں systemd سروس کیسے بنائیں۔

عمومی سوالات

ریورس پراکسی کیا ہے اور مجھے اس کی ضرورت کیوں ہے؟

آپ کی ایپ عموماً 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 دونوں دوبارہ کوشش کرتے ہیں۔

تبصرے

ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔

ایک تبصرہ چھوڑیں

تبصرے ظاہر ہونے سے پہلے moderate کیے جاتے ہیں۔