EQVPS

كيف تُعدّ وسيط nginx العكسي مع HTTPS

ضع نطاقًا نظيفًا وHTTPS تلقائيًا أمام أي تطبيق يعمل على منفذ محلي. طريقتان: nginx مع Certbot، أو Caddy لـ TLS تلقائي في سطر واحد. خطوة بخطوة، مع الإعداد الجاهز للنسخ.

معظم التطبيقات المُستضافة ذاتيًا تستمع على منفذ محلي مثل 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 أوسع شهرةً وأكثر مرونة، لكنك تضيف Certbot لأجل TLS. إن أردت HTTPS بأقل عناء فاستخدم Caddy؛ وإن كنت تعرف nginx أو تحتاج ميزاته فاستخدم nginx.

هل أحتاج نطاقًا؟

لشهادة HTTPS موثوقة، نعم — يصدر Let's Encrypt شهادات لأسماء النطاقات لا لعناوين IP المجرّدة. وجّه سجل A إلى IP خادمك، وانتظر انتشار DNS، ثم يستطيع الوسيط الحصول على شهادة لذلك الاسم.

أي منافذ يجب فتحها؟

80 و443 واردًا. يُستخدم المنفذ 80 لتحدّي الشهادة الأولي وإعادة التوجيه إلى HTTPS؛ ويخدم 443 حركة المرور المشفّرة. افتح كليهما في جدارك الناري (راجع دليل UFW) وتأكّد أن لا شيء آخر مرتبط بهما بالفعل.

لماذا يفشل إصدار الشهادة؟

غالبًا DNS أو المنافذ. يجب أن يشير سجل A للنطاق إلى هذا الخادم وأن يكون قد انتشر، وأن يكون المنفذان 80/443 قابلين للوصول (مفتوحان في الجدار الناري، غير محجوبين أعلى المجرى). أصلح هذين وينجح الإصدار؛ ويعيد Caddy وCertbot المحاولة كلاهما.

التعليقات

لا تعليقات بعد. كن الأول.

اترك تعليقًا

تُراجَع التعليقات قبل ظهورها.