إدارة الوكلاء و المضيفات الافتراضية (VHosts) من خلال ملفات تكوين NGINX يمكن أن يصبح مملاً مع زيادة عدد المضيفات الافتراضية وخدمات الويب. كيف يمكنك تبسيط العملية؟ مدير بروكسي NGINX (NPM).
استمر في القراءة وتعلم كيفية إنشاء وإدارة وتأمين المضيفات الافتراضية باستخدام واجهة المستخدم لمدير بروكسي NGINX.
المتطلبات الأساسية
سيكون هذا البرنامج التعليمي عرضًا عمليًا. إذا كنت ترغب في المتابعة ، تأكد من وجود ما يلي:
- A Linux machine to host NGINX Proxy Manager and the proxied webserver- This tutorial uses Fedora 35.
- Docker لتشغيل الحاويات – يستخدم هذا البرنامج التعليمي Docker v20.10.12. قم بتثبيت Docker باستخدام هذا البرنامج التعليمي إذا لم يكن لديك بالفعل أي من البدائل المثبتة.
- Docker Compose لإعداد مدير البروكسي ومتطلباته تلقائيًا. يستخدم هذا البرنامج التعليمي الإصدار 1.29.2. قم بتثبيت Docker Compose للمتابعة مع بقية المقالة.
- يعمل اسم النطاق كنقطة نهاية مضيف افتراضي. يستخدم هذا البرنامج التعليمي اسم نطاق خاصًا، testweb.com. تأكد من أن اسم النطاق يشير إلى جهاز المضيف Linux. يمكنك أيضًا استخدام اسم نطاق مسجل عام.
- يجب أن يكون لديك شهادة SSL ومفتاح الشهادة لتأمين الخوادم الافتراضية. قم بإنشاء شهادة وملف المفتاح المرتبط بها إذا لم يكن لديك واحد بعد.
إعداد مدير بروكسي NGINX
مدير بروكسي NGINX ليس حزمة تقوم بتثبيتها على نظام التشغيل الخاص بك. بدلاً من ذلك ، NPM هو تطبيق تقوم بنشره في Docker – ولهذا السبب فإن Docker و Docker Compose هما المتطلبات الأساسية.
اتبع الخطوات التالية للبدء في إعداد مدير بروكسي NGINX الخاص بك.
1. قم بتسجيل الدخول إلى خادم Linux الخاص بك عبر SSH أو واجهة سطح المكتب إذا كانت متاحة.
2. قم بإنشاء وفتح ملف YAML يسمى docker-compose.yml باستخدام محرر النص المفضل لديك، هنا يُستخدم vi.
3. انسخ والصق الكود التالي في المحرر. يحتوي هذا الكود على التوجيهات لتنزيل وإعداد صورة nginx-proxy-manager الأحدث. قم بحفظ وإغلاق الملف للعودة إلى سطر الأوامر.
4. قم بتشغيل docker-compose لتشغيل الحاوية في الخلفية (-d) وفقًا للتوجيهات المحددة.

5. قم بتنفيذ الأمر التالي للتأكد من أن الحاوية تعمل.
يجب أن ترى عملية تعمل تتطابق مع حاوية مدير البروكسي في الصورة أدناه إذا كان كل شيء على ما يرام.

الوصول إلى لوحة الإدارة
يجب أن يكون NGINX Proxy Manager الآن يعمل. يمكنك الآن الوصول إلى لوحة إدارة NPM لإجراء إعداد المستخدم الإداري الأولي.
1. افتح نافذة المتصفح وانتقل إلى http://<host_ip>:admin-ui-port>. للراحة، يستخدم هذا البرنامج التعليمي المضمن localhost بدلاً من عنوان IP، أي http://localhost:81، لتشغيل لوحة التحكم الإدارية.
2. قم بتسجيل الدخول باستخدام بيانات الاعتماد الافتراضية الأولية لعنوان البريد الإلكتروني [email protected] وكلمة المرور changeme.

3. قم بتعديل حساب المستخدم الافتراضي كما ترغب. يحتفظ هذا البرنامج التعليمي بالاسم الكامل والاسم المستعار ويقوم فقط بتغيير البريد الإلكتروني إلى [email protected]. انقر فوق حفظ لحفظ تفاصيل المستخدم.

4. اكتب كلمة مرور جديدة للمستخدم في “تغيير كلمة المرور” كما هو موضح أدناه. اكتب كلمة مرور تحتوي على ثمانية أحرف أو أكثر وانقر فوق حفظ.

يجب أن تظهر التغييرات التي أجريتها على حساب المستخدم أدناه.

نشر خادم الويب
الآن بعد أن قمت بإجراء الإعداد الأولي، خطوتك التالية هي بدء خادم ويب لمضيفك الظاهري. اتبع الخطوات في هذا القسم لبدء خدمة ويب Apache باستخدام Docker Compose بسرعة.
افتح ملف docker-compose.yml الذي قمت بإنشائه مسبقًا في محرر النصوص الخاص بك. أضف القطعة التالية من الكود إلى ملف docker-compose.yml الخاص بك
ميزة استخدام نفس الملف هي تعديل شبكة الحاوية الموجودة بالفعل عن طريق إضافة حاوية قائمة على httpd تحت اسم app2 بدلاً من استخدام شبكة منفصلة.
يجب أن يكون محتوى الملف مشابهاً للصورة الموضحة أدناه. قم بحفظ الملف وإغلاق المحرر.

قم بتشغيل docker-compose
لتشغيل الحاوية في الخلفية (-d
).
يجب أن تتلقى ردود فعل مشابهة للصورة الموضحة أدناه، تؤكد إنشاء الحاوية الثانية.

إنشاء خادم افتراضي جديد
الآن لديك خدمة ويب تعمل. تهدف هذه الجزء إلى تمكين الوصول إلى خادم الويب عبر المنافذ المنشورة لـ NGINX Proxy Manager.
1. قم بتسجيل الدخول إلى لوحة تحكم المسؤول لـ NGINX Proxy Manager.
2. انقر فوق الاستضافات -> الاستضافات الوكيلة.

3. انقر فوق إضافة مضيف وكيل للبدء في إنشاء خادم افتراضي لخادم الويب.

4. قم بملء استمارة مضيف الوكيل الجديد باستخدام التفاصيل التالية لإعداد الخادم الافتراضي.
- أسماء النطاق: أسماء النطاق حيث سيكون خادم الويب الخاص بك متاحاً. يستخدم هذا المثال نطاق testweb.com.
- البروتوكول: البروتوكول المستخدم عند الوصول إلى خادم الويب. اترك القيمة الافتراضية
http
للآن.
- اسم المضيف المعكوس / عنوان IP: اسم المضيف أو عنوان IP للخادم الويب. نظرًا لأن هذا البرنامج التعليمي يستخدم Docker Compose لإعداد الحاويات، فمن الكافي استخدام
app2
. اكتب أي اسم قمت بتوفيره في docker-compose.yml.
- رقم المنفذ المراد إعادة توجيهه: المنفذ الذي يستمع إليه خادم الويب للطلبات. في هذه الحالة، ستستخدم المنفذ
80
، وهو المنفذ المعرض الافتراضي لحاويات Apache httpd.
- حظر الاستغلالات الشائعة: بالإضافة إلى ذلك، يمكن للوكيل الذي تم إعداده باستخدام NPM حظر الاستغلالات الشائعة. قم بتشغيل هذا الخيار.
- قائمة الوصول: قوائم محددة مسبقًا للتحكم في وصول خادم الويب وراء الوكيل. لهذا البرنامج التعليمي، اترك الاختيار على “متاح للجميع” لضمان الوصول إلى خادم الويب عبر الوكيل.
يجب أن يتطابق النموذج على الشاشة مع الصورة الموضحة أدناه. انقر على “حفظ” بعد إكمال النموذج.

الآن لديك مضيف واحد للوكيل في القائمة.

5. في النهاية، انتقل إلى عنوان URL الظاهري في علامة تبويب متصفح جديدة. لهذا البرنامج التعليمي، عنوان URL هو http://testweb.com. إذا كان المضيف الظاهري يعمل بشكل صحيح، يجب أن ترى الصفحة الرئيسية الافتراضية.

توفير شهادات SSL
لقد نشرت خادم الويب وتأكدت من أنه يعمل. في هذه المرحلة، لا يزال الموقع الإلكتروني لا يحتوي على شهادة SSL. على الرغم من أن تشغيل مواقع الويب الخاصة الداخلية قد يكون مقبولًا بدون شهادة SSL، إلا أنه يجب توفير الشهادة عند استضافة المواقع العامة.
لضمان تشفير اتصالات موقع الويب الخاص بك ، ستقوم بتثبيت شهادة SSL على المضيف الظاهري الخاص بك بعد ذلك. لا تقلق ؛ ستفعل ذلك من NGINX Proxy Manager. ولكن يجب أن يكون لديك بالفعل شهادة SSL بتنسيق PEM ومفتاح الشهادة كمتطلب.
1. انقر على علامة التبويب “شهادات SSL” في لوحة التحكم لمدير بروكسي NGINX.

2. في الزاوية العلوية اليمنى ، انقر على “إضافة شهادات SSL” -> “مخصص”.

كبديل لشهادة مخصصة ، يمكنك طلب شهادة Let’s Encrypt مباشرةً وفورًا عن طريق تحديد Let’s Encrypt. ولكن ، يتطلب ذلك أن يكون موقع الويب الخاص بك وسجل DNS عامًا. وإلا ، ستفشل عملية الحصول على الشهادة.
3. أكمل نموذج إضافة شهادة مخصصة على النحو التالي
- الاسم: اسم سهل القراءة للشهادة في لوحة التحكم الإدارية. يستخدم هذا البرنامج التعليمي اسم Testweb Cert كمثال.

- مفتاح الشهادة: يأتي هذا المفتاح مع ملف الشهادة الذي أنشأته كمتطلب في هذا البرنامج التعليمي.
انقر فوق استعراض وانتقل إلى ملف المفتاح.

انقر مرتين على ملف المفتاح. في هذا البرنامج التعليمي ، يسمى مفتاح الشهادة mytesthttpd.key.

- الشهادة: ملف الشهادة نفسه ، سواء بتنسيق .crt أو .pem.
انقر على استعراض وانتقل إلى شهادتك في مستكشف الملفات الخاص بك.

انقر مرتين على ملف الشهادة لفتحه. في هذا البرنامج التعليمي ، يسمى ملف المفتاح mytesthttpd.pem.

4. بمجرد ملء جميع الحقول الثلاثة ، يجب أن تبدو نموذجك مشابهًا للصورة أدناه. انقر على حفظ لإرسال الشهادة المخصصة.
لا يستخدم هذا البرنامج التعليمي شهادة وسيطة. تجاهل هذا الحقل في الوقت الحالي.

5. الآن ، انقر فوق Hosts -> Proxy Hosts.

6. انقر فوق أيقونة القائمة واختر تحرير. لاحظ أن عمود SSL يقول “فقط HTTP” في هذه النقطة

7. حدد علامة التبويب SSL في نافذة تحرير مضيف الوكيل كما هو موضح أدناه. حدد الشهادة التي قمت بتوفيرها من القائمة المنسدلة تحت شهادة SSL. في هذا البرنامج التعليمي ، هو Testweb Cert كما هو موضح في الصورة أدناه.

8. حدد الشهادة التي قمت بإضافتها مسبقًا من القائمة المنسدلة تحت شهادة SSL. كما يمكنك رؤية أدناه ، اسم الشهادة للاختيار هو Testweb Cert.

9. قم بتمكين جميع خيارات SSL المحسنة المتاحة ، كما ترون في الصورة أدناه ، وانقر على حفظ.
سيقوم خيار Force SSL بإجبار أو ترقية جميع الاتصالات إلى HTTPS حتى عندما يحاول العميل في البداية الوصول إلى عنوان URL الخاص بـ HTTP فقط.

A word of warning with HSTS. As browsers will include the site on an internal inclusion list, your site will no longer work under non-SSL conditions. Therefore, make sure that you have everything set up the correct way first.
ستلاحظ أن قيمة عمود SSL تغيرت من “فقط HTTP” إلى “مخصص”.

10. في النهاية ، افتح علامة تبويب المتصفح وانتقل مرة أخرى إلى نطاق المضيف الافتراضي الخاص بك. في هذا البرنامج التعليمي ، هو http://testweb.com. يجب أن يتم ترقية الاتصال تلقائيًا إلى HTTPS.

تهانينا! لقد اكتمل نشر المضيف الافتراضي المؤمن باستخدام NGINX Proxy Manager.
إضافة مستخدمي NGINX Proxy Manager
إذا كنت تعمل مع فريق أو تتوقع من شخص آخر إدارة مضيفي الويب الافتراضية في NPM، ستحتاج إلى توفير حقوق الوصول للمستخدمين. في هذا القسم، ستقوم بتوسيع إدارة NPM، خاصة في إعدادات الفريق، من خلال إنشاء مستخدم وتعيين الأدوار والأذونات.
1. انقر على المستخدمين في صفحة الصفحة الرئيسية لوحة التحكم.

2. انقر على إضافة مستخدم في الزاوية العلوية اليمنى لبطاقة المستخدمين.

3. اكتب اسم المستخدم الكامل (مستخدم الاختبار)، الاسم المستعار (testuser)، والبريد الإلكتروني ([email protected]) في الحقول المقابلة وانقر على حفظ.
هذا المستخدم الذي تقوم بإنشائه لن يكون مسؤولًا كاملًا، لذا لا تقم بتمكين دور المسؤول. ستقوم بتعيين إذن مخصص بدلاً من ذلك. انقر على حفظ لإضافة المستخدم الجديد.

4. قم بتعيين الأذونات التي ترغب في منحها للمستخدم. لهذا البرنامج التعليمي، سيكون لدى المستخدم الجديد إعدادات الأذونات التالية.
- يمكنه فقط عرض العناصر التي تم إنشاؤها بواسطة المستخدم.
- يمكنه إنشاء وتحرير وحذف مضيفي الوكيل.
- يمكنه إنشاء وتحرير وحذف مضيفي التوجيه.
- لا يمكنه رؤية مضيفي 404.
- لا يمكنه رؤية التدفقات.
- يمكنه عرض قوائم الوصول.
- يمكنه إنشاء وتحرير وحذف شهادات SSL.
يجب أن تكون مجموعة الأذونات مشابهة للصورة أدناه. انقر على حفظ لإنهاء إضافة المستخدم الجديد.

5. الآن، انقر فوق قائمة المستخدم الجديد وانقر على تسجيل الدخول كمستخدم. ستقوم هذه الخطوة بتبديل سياق المستخدم الحالي إلى مستخدم الاختبار.

6. استكشف لوحة الإدارة من وجهة نظر المستخدم الجديد. ووفقًا لأذونات هذا المستخدم، يجب أن ترى عددًا أقل من علامات التبويب والموارد.

الاستنتاج
تهانينا على انتهاء هذا البرنامج التعليمي لـ NGINX Proxy Manager. لقد تعلمت كيفية إدارة المضيفين الافتراضيين وتمكين التعاون من خلال إنشاء مستخدمين من واجهة المستخدم الرسومية! هل تعتقد أنك ستعود يومًا ما إلى إدارة مضيفي NGINX الافتراضيين من خلال تحرير ملفات التكوين اليدوية؟
هنا فكرة لاختبار مستوى تعلمك بشكل أعمق. لماذا لا تقرأ المزيد حول كيفية خدمة NGINX النطاقات الفرعية أو النطاقات المتعددة. ولكن بدلاً من اتباع التكوينات اليدوية، ضع ما تعلمته في التطبيق والتكوين للمضيفين الافتراضيين باستخدام NGINX Proxy Manager.