المختبر المنزلي والاستضافة الذاتية

عدة خدمات خلف خادم واحد باستخدام Nginx Proxy Manager

إذا كان خادم واحد يشغّل أكثر من مشروع، فستصطدم عاجلًا أم آجلًا بالمنفذين 80 و443، ولا يستطيع الاستماع إليهما إلا عملية واحدة. تعرض مقالة على Habr من مدونة Selectel، خطوة بخطوة، كيفية حل هذه المشكلة باستخدام Nginx Proxy Manager.

يشرح الكاتب أولًا المشكلة: المنافذ المميزة، وقاعدة «منفذ واحد لمستمع واحد»، ومشكلات CORS عند فصل الواجهة الأمامية والخلفية على منافذ مختلفة، وغياب HTTPS. يحل الوكيل العكسي المشكلة بوصفه وسيطًا يوجّه الحركة حسب النطاق والمسار. ومن المزايا الإضافية أن جدار الحماية يحتاج إلى فتح المنافذ 22 و80 و443 فقط.

بيئة الاختبار خادم VDS بمعالجين افتراضيين و2 GB من الذاكرة و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، ما قد يضعف إمكانية التكرار مع مرور الوقت. ومع ذلك فهي نقطة انطلاق جيدة لمن يريد تشغيل عدة خدمات في المنزل أو على VDS دون تعديل إعدادات nginx يدويًا.

المصدر: Habr (مدونة Selectel)

التعليقات 0

اترك أول تعليق، بأي لغة.

سجّل الدخول للتعليق