إدارة مضيف افتراضي بسيطة مع NGINX Proxy Manager

إدارة الوكلاء و المضيفات الافتراضية (VHosts) من خلال ملفات تكوين NGINX يمكن أن يصبح مملاً مع زيادة عدد المضيفات الافتراضية وخدمات الويب. كيف يمكنك تبسيط العملية؟ مدير بروكسي NGINX (NPM).

استمر في القراءة وتعلم كيفية إنشاء وإدارة وتأمين المضيفات الافتراضية باستخدام واجهة المستخدم لمدير بروكسي NGINX.

المتطلبات الأساسية

سيكون هذا البرنامج التعليمي عرضًا عمليًا. إذا كنت ترغب في المتابعة ، تأكد من وجود ما يلي:

إعداد مدير بروكسي NGINX

مدير بروكسي NGINX ليس حزمة تقوم بتثبيتها على نظام التشغيل الخاص بك. بدلاً من ذلك ، NPM هو تطبيق تقوم بنشره في Docker – ولهذا السبب فإن Docker و Docker Compose هما المتطلبات الأساسية.

اتبع الخطوات التالية للبدء في إعداد مدير بروكسي NGINX الخاص بك.

1. قم بتسجيل الدخول إلى خادم Linux الخاص بك عبر SSH أو واجهة سطح المكتب إذا كانت متاحة.

2. قم بإنشاء وفتح ملف YAML يسمى docker-compose.yml باستخدام محرر النص المفضل لديك، هنا يُستخدم vi.
3. انسخ والصق الكود التالي في المحرر. يحتوي هذا الكود على التوجيهات لتنزيل وإعداد صورة nginx-proxy-manager الأحدث. قم بحفظ وإغلاق الملف للعودة إلى سطر الأوامر.

vi docker-compose.yml
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped #تأكد من استمرار عمل برنامج إدارة البروكسي بعد الأعطال
    ports:
      
#السماح بوصول منافذ حاويات معينة من الجهاز المضيف
      - '80:80'
      - '81:81' 
#منفذ لوحة التحكم الإدارية
      - '443:443'
    volumes:
      
#ربط الدلائل الخاصة بالحاوية التالية بالدلائل المقابلة في الجهاز المضيف
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

4. قم بتشغيل docker-compose لتشغيل الحاوية في الخلفية (-d) وفقًا للتوجيهات المحددة.

docker-compose up -d
Running Docker Compose to set up NGINX Proxy Manager container

5. قم بتنفيذ الأمر التالي للتأكد من أن الحاوية تعمل.

docker ps

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

Listing running Docker containers

الوصول إلى لوحة الإدارة

يجب أن يكون NGINX Proxy Manager الآن يعمل. يمكنك الآن الوصول إلى لوحة إدارة NPM لإجراء إعداد المستخدم الإداري الأولي.

1. افتح نافذة المتصفح وانتقل إلى http://<host_ip>:admin-ui-port>. للراحة، يستخدم هذا البرنامج التعليمي المضمن localhost بدلاً من عنوان IP، أي http://localhost:81، لتشغيل لوحة التحكم الإدارية.

2. قم بتسجيل الدخول باستخدام بيانات الاعتماد الافتراضية الأولية لعنوان البريد الإلكتروني [email protected] وكلمة المرور changeme.

Logging in for the first time

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

Changing admin user default credentials

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

Changing the default password

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

Viewing the user list in NGINX Proxy Manager

نشر خادم الويب

الآن بعد أن قمت بإجراء الإعداد الأولي، خطوتك التالية هي بدء خادم ويب لمضيفك الظاهري. اتبع الخطوات في هذا القسم لبدء خدمة ويب Apache باستخدام Docker Compose بسرعة.

افتح ملف docker-compose.yml الذي قمت بإنشائه مسبقًا في محرر النصوص الخاص بك. أضف القطعة التالية من الكود إلى ملف docker-compose.yml الخاص بك

ميزة استخدام نفس الملف هي تعديل شبكة الحاوية الموجودة بالفعل عن طريق إضافة حاوية قائمة على httpd تحت اسم app2 بدلاً من استخدام شبكة منفصلة.

app2:
    #اسم مخصص للإشارة الداخلية إلى الحاوية. يستخدم للتواصل بين الحاويات
    image: 'httpd:latest'
    restart: unless-stopped

يجب أن يكون محتوى الملف مشابهاً للصورة الموضحة أدناه. قم بحفظ الملف وإغلاق المحرر.

Adding a web server deployment directive

قم بتشغيل docker-compose لتشغيل الحاوية في الخلفية (-d).

docker-compose up -d

يجب أن تتلقى ردود فعل مشابهة للصورة الموضحة أدناه، تؤكد إنشاء الحاوية الثانية.

Creating and starting the Web server with Docker Compose

إنشاء خادم افتراضي جديد

الآن لديك خدمة ويب تعمل. تهدف هذه الجزء إلى تمكين الوصول إلى خادم الويب عبر المنافذ المنشورة لـ NGINX Proxy Manager.

1. قم بتسجيل الدخول إلى لوحة تحكم المسؤول لـ NGINX Proxy Manager.

2. انقر فوق الاستضافات -> الاستضافات الوكيلة.

Creating a VHOST: Opening the Proxy Host card

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

Creating a VHOST: Adding a Proxy Host

4. قم بملء استمارة مضيف الوكيل الجديد باستخدام التفاصيل التالية لإعداد الخادم الافتراضي.

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

يجب أن يتطابق النموذج على الشاشة مع الصورة الموضحة أدناه. انقر على “حفظ” بعد إكمال النموذج.

Adding the Proxy Host details

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

List of proxy hosts

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

Accessing the Webserver via the Proxy

توفير شهادات SSL

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

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

1. انقر على علامة التبويب “شهادات SSL” في لوحة التحكم لمدير بروكسي NGINX.

Opening the SSL Certificates tab

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

Adding a custom SSL certificate

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

3. أكمل نموذج إضافة شهادة مخصصة على النحو التالي

  • الاسم: اسم سهل القراءة للشهادة في لوحة التحكم الإدارية. يستخدم هذا البرنامج التعليمي اسم Testweb Cert كمثال.
Provisioning SSL Certificates: Naming the certificate
  • مفتاح الشهادة: يأتي هذا المفتاح مع ملف الشهادة الذي أنشأته كمتطلب في هذا البرنامج التعليمي.

انقر فوق استعراض وانتقل إلى ملف المفتاح.

Provisioning SSL Certificates: Selecting the key file

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

Provisioning SSL Certificates: Selecting the key file
  • الشهادة: ملف الشهادة نفسه ، سواء بتنسيق .crt أو .pem.

انقر على استعراض وانتقل إلى شهادتك في مستكشف الملفات الخاص بك.

Provisioning SSL Certificates: Selecting the certificate file

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

Provisioning SSL Certificates: Selecting the certificate file

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

لا يستخدم هذا البرنامج التعليمي شهادة وسيطة. تجاهل هذا الحقل في الوقت الحالي.

Saving the SSL certificate

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

Provisioning SSL Certificates: Applying the certificate to a Proxy Host

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

Editing a proxy Host

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

Selecting a certificate for a Proxy Host

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

Selecting a certificate for a Proxy Host

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

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

Enabling enhanced SSL features

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” إلى “مخصص”.

Confirming changes in the SSL setting for a Proxy Host

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

Testing HTTPS access with a browser

تهانينا! لقد اكتمل نشر المضيف الافتراضي المؤمن باستخدام NGINX Proxy Manager.

إضافة مستخدمي NGINX Proxy Manager

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

1. انقر على المستخدمين في صفحة الصفحة الرئيسية لوحة التحكم.

Extending NPM with Users: Opening the Users tab

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

Adding a user

3. اكتب اسم المستخدم الكامل (مستخدم الاختبار)، الاسم المستعار (testuser)، والبريد الإلكتروني ([email protected]) في الحقول المقابلة وانقر على حفظ.

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

Adding user particulars

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

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

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

Saving the user’s permissions

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

Signing in as the new user

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

Confirming access permissions

الاستنتاج

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

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

Source:
https://adamtheautomator.com/nginx-proxy-manager/