هل لديك خادم بعنوان IP عام واحد فقط وتحتاج إلى استضافة عدة نطاقات أو نطاقات فرعية؟ ماذا ستفعل؟ يمكن أن يكون هذا السيناريو محيرًا إذا كنت مبتدئًا. ولكن لا داعي للقلق، فإن هذا البرنامج التعليمي لديه كل ما تحتاجه، حتى تتمكن من خدمة نطاق فرعي لـ NGINX وعدة نطاقات.
في هذا البرنامج التعليمي، ستتعلم كيفية خدمة فعالة لنطاقات فرعية NGINX أو عدة نطاقات على خادم واحد بعنوان IP واحد!
إذا كنت جاهزًا، حان الوقت للبدء في ذلك!
المتطلبات الأساسية
يأتي هذا البرنامج التعليمي مع عروض توضيحية عملية ولكنه لا يتطلب العديد من المتطلبات المسبقة وسيفترض أن لديك خادم Ubuntu Server LTS مع SSH مفعل و NGINX مثبت. العروض التوضيحية في هذا البرنامج التعليمي تعتمد على خادم Ubuntu Server LTS 20.04.1.
إعداد سجلات DNS
قبل أن تتمكن من خدمة نطاقات فرعية NGINX أو عدة نطاقات، ستحتاج إلى إضافة سجل A في لوحة تحكم DNS. يربط سجل A ويشير جميع النطاقات والنطاقات الفرعية بعنوان IP واحد للسماح لمتصفحي الويب بالعثور على موقع الويب الخاص بك.
1. قم بتشغيل متصفح الويب المفضل لديك، وقم بتسجيل الدخول إلى لوحة تحكم DNS الخاصة بك.
2. انقر على إضافة سجل لبدء إضافة سجلات A. يتم توجيه متصفحك إلى صفحة حيث ستقوم بتكوين إعدادات DNS الخاصة بنطاقك والنطاقات الفرعية.

الآن قم بتكوين إعدادات DNS باستخدام الآتي:
حدد سجل A في حقل النوع.
أدخل @ في حقل المضيف، وعنوان IP الخاص بالخادم الخاص بك في حقل القيمة.
اختر القيمة المرغوبة في حقل TTL، ثم انقر فوق زر تأكيد لحفظ الإعدادات.
كرر نفس العملية للنطاقات الفرعية الأخرى.

تبدو الصفحة النهائية لـ إعدادات DNS مثل الصورة أدناه.

قد تختلف لوحة تحكم سجل DNS الخاصة بك من حيث الوظائف والتصميم، ولكن نفس المبادئ ستنطبق على الجميع.
إعداد الدلائل الويبية لنطاق NGINX ونطاق فرعي
الآن بعد أن قمت بإضافة سجلات A لنطاقك والنطاقات الفرعية الخاصة بك، حان الوقت لإعداد الدلائل الويبية الخاصة بها. يأتي NGINX مع ملف مضيف افتراضي ومكون لتقديم دليل ويب يقع في /usr/share/nginx/html.
سوف تقوم بإنشاء دليل ويب منفصل لكل نطاق داخل جذر المستند الافتراضي لـ NGINX (/var/www/html).
1. أولاً، افتح الطرفية الخاصة بك وقم بتشغيل الأوامر أدناه لإنشاء دليل الويب لجميع النطاقات والنطاقات الفرعية. يفصل هذا الإجراء بين الملفات وينظمها ويعزلها لكل موقع ويب.
2. بعد ذلك، قم بتشغيل أمر chown
لتغيير ملكية كل دليل قمت بإنشائه في الخطوة الأولى بشكل تكراري (-R
) إلى مستخدم ومجموعة www-data
. أنت تقوم بتغيير ملكية كل دليل إلى مستخدم ومجموعة www-data
نظرًا لأن NGINX يعمل كمستخدم www-data
.
3. قم بإنشاء ملف بالاسم index.html في محرر الشيفرة المفضل لديك ثم قم بنسخ/لصق الشيفرة أدناه إلى ملف index.html. احفظ الملف داخل الدليل الرئيسي للموقع الويب (/var/www/html/awstutorial.net).
يقوم الشيفرة HTML أدناه بعرض رسالة تقول “تهانينا! يعمل موقع awstutorial.net!” عند فتح ملف index.html في متصفح الويب.
4. في الختام، قم بإنشاء نفس index.html في الدليلين /var/www/html/web1.awstutorial.net و /var/www/html/web2.awstutorial.net. ولكن قم بتغيير awstutorial.net
بـ web1.awstutorial.net
و web2.awstutorial.net
في شيفرة كل index.html على التوالي.
إعداد مضيف افتراضي لخادم NGINX للنطاق والنطاقات الفرعية
لديك بالفعل صفحة index.html لنطاقك والنطاقات الفرعية لتقديمها من خلال خادم NGINX. الخطوة التالية هي إنشاء ملف تكوين مضيف افتراضي NGINX لكل نطاق لتقديم صفحات HTML.
1. قم بإنشاء ملف تكوين مضيف افتراضي لـ NGINX بالاسم awstutorial.net في محرر الكود المفضل لديك، ثم انسخ / الصق الكود أدناه إلى هذا الملف. احفظ الملف في الدليل /etc/nginx/sites-available/.
الكود أدناه يتحكم في سلوك الخادم الخاص بك، مثل اسم الخادم وصفحة الفهرس (الرئيسية) عندما يحاول المستخدم الوصول إلى نطاقك.
2. بعد ذلك، قم بتشغيل الأمر nginx
التالي لفحص (-t
) ملف تكوين NGINX لأي خطأ في الصياغة.
إذا لم يتم العثور على أي خطأ في صيغة ملف تكوين NGINX، ستحصل على النتيجة التالية.

3. بعد ذلك، قم بتشغيل الأمر أدناه لإنشاء رابط رمزي (ln -s
) من /etc/nginx/sites-available إلى الدليل /etc/nginx/sites-enabled/. يتيح هذا الأمر ملف تكوين الاستضافة الظاهرية awstutorial.net.
صيغة sites-available و sites-enabled هي قياسية في تثبيت NGINX على Ubuntu ولكن قد يستخدم توزيعات أخرى معيارًا مختلفًا.
4. كرر الخطوات من واحد إلى ثلاث لإنشاء ملفات تكوين استضافة NGINX افتراضية تسمى web1.awstutorial.net و web2.awstutorial.net.
قم بتغيير الأسطر التالية في كل ملف تكوين استضافة NGINX:
- استبدل السطر
root /var/www/html/awstutorial.net
بدليل الجذر لكل فرع فرعي (root /var/www/html/web1.awstutorial.net
وroot /var/www/html/web2.awstutorial.net
). - استبدل السطر
server_name awstutorial.net
باسم كل فرع فرعي (server_name web1.awstutorial.net
وserver_name web2.awstutorial.net
).
5. الآن قم بتشغيل أوامر sudo ln
أدناه كما فعلت في الخطوة الثالثة لتمكين ملفات تكوين الاستضافة الظاهرية.
6. قم بتشغيل الأمر التالي systemctl
لإعادة تشغيل خدمة NGINX (restart nginx
) لتطبيق جميع التغييرات في التكوين.
7. في النهاية، قم بالتنقل إلى عناوين URL للنطاق والنطاقات الفرعية على متصفحك لاختبار ما إذا كانت المواقع تعمل بشكل جيد.
إذا تم تحميل النطاق والنطاقات الفرعية، سترى رسالة مثل الرسالة التالية.

إعداد HTTPS على NGINX النطاق والنطاقات الفرعية
لقد نجحت في إعداد واختبار نطاق NGINX ونطاقات فرعية على بروتوكول HTTP، وهذا رائع. ولكن عليك تأمين اتصال نطاقك ونطاقاتك الفرعية من خلال تمكين HTTPS. كيف؟ باستخدام شهادة ستحصل عليها من جهة إصدار الشهادات مثل Let’s Encrypt SSL.
1. أولاً، قم بتشغيل الأمر أدناه لتثبيت حزمة البرمجيات Certbot (apt-get install certbot
). يتيح لك Certbot تنزيل شهادة SSL لنطاقك ونطاقاتك الفرعية.
2. بعد ذلك، قم بتشغيل الأمر التالي certbot
لتحميل شهادة SSL (certonly
) لنطاقك (-d awstutorial.net
). لاحظ أنك توافق على شروط الخدمة (--agree-tos
) باستخدام عنوان بريدك الإلكتروني (--email
).
استبدل البريد الإلكتروني بالخاص بك.
3. أدخل ‘1’ لتحديد مكون الخادم الويب NGINX (nginx) للمصادقة مع CA ACME، كما هو موضح أدناه.

بعد اختيار مكون الخادم الويب NGINX، سترى تقدم التنزيل لشهادة SSL لنطاقك (awstutorial.net).
بشكل افتراضي، تُخزن شهادات SSL الخاصة بـ Let’s Encrypt في الدليل /etc/letsencrypt/live/.

4. الآن قم بتشغيل كل أمر أدناه كما فعلت في الخطوة الثانية لتنزيل شهادات SSL للنطاقات الفرعية المتبقية (web1.awstutorial.net
و web2.awstutorial.net
).
5. في النهاية، قم بتشغيل الأمر ls
أدناه لعرض جميع شهادات SSL في الدليل /etc/letsencrypt/live/ التي تحتوي (*
) على awstutorial.net
في أسمائها. يسمح ذلك لك بالتحقق من وجود شهادات SSL.
أدناه، سترى شهادات SSL لنطاقك والنطاقات الفرعية.

تكوين مضيف NGINX الافتراضي لاستخدام شهادات SSL
في هذه النقطة، لديك بالفعل شهادات SSL في تصرفك. ولكن كيف يمكنك استخدامها لتأمين نطاقك والنطاقات الفرعية؟ ستقوم بتحديد مسار الشهادات في كتلة server
لكل ملف تكوين مضيف افتراضي NGINX.
1. افتح ملف تكوين مضيف NGINX الافتراضي لـ awstutorial.net الموجود في دليل /etc/nginx/sites-available/
باستخدام محرر الكود المفضل لديك.
2. استبدل محتوى الملف بالكود أدناه، حيث تقوم بتحديد مسار شهادة SSL النطاق الخاص بك، وبروتوكول SSL (تحت مسار الشهادة SSL
).
3. كرر نفس العملية (الخطوات من واحد إلى اثنين) لملفات تكوين مضيف افتراضي المتبقية (web1.awstutorial.net و web2.awstutorial.net). ولكن تأكد من استبدال مسار شهادة SSL بمسار شهادة النطاق الفرعي الخاص بك (تحت مسار شهادة SSL
).
4. الآن أعد تشغيل الأمر systemctl
أدناه لإعادة تشغيل خدمة NGINX لتطبيق تغييرات التكوين.
5. في النهاية، انتقل إلى عناوين URL الخاصة بنطاقك ونطاق فرعي على متصفح الويب الخاص بك. ولكن هذه المرة، بدلاً من بروتوكول HTTP، استخدم HTTPS لمعرفة ما إذا كانت تعمل.
أدناه، يمكنك رؤية رمز القفل في شريط العنوان، مما يشير إلى أن الموقع مؤمن بشهادة SSL الخاصة بك.

الختام
في هذا البرنامج التعليمي، لقد تعلمت كيفية خدمة نطاق فرعي NGINX أو عدة نطاقات من خلال تكوين ملف تكوين مضيف افتراضي. كما تطرقت أيضًا إلى تأمين نطاقاتك بشهادة SSL التي قمت بتحديدها أيضًا في ملف تكوين مضيف افتراضي.
الآن، لماذا لا تستخدم هذا الإعداد في بيئة إنتاجية، مثل استضافة تطبيقات متعددة على خادم واحد، وتوفير استضافة ويب بأسعار معقولة؟