مقدمة
إنجينكس هو واحد من أشهر خوادم الويب في العالم وهو مسؤول عن استضافة بعض من أكبر المواقع وأعلى حركة مرور على الإنترنت. إنه خيار خفيف يمكن استخدامه entanto كخادم ويب أو كبروكسي عكسي.
في هذا الدليل، سنناقش كيفية تثبيت إنجينكس على خادم Ubuntu 20.04 الخاص بك، ضبط جدار الحماية، إدارة عملية إنجينكس، وإعداد كتل الخوادم لاستضافة أكثر من نطاق واحد من خادم واحد.
بسهولة نشر التطبيقات مع منصة تطبيقات DigitalOcean. نشر مباشرة من GitHub في دقائق.
المتطلبات المسبقة
قبل أن تبدأ في هذا الدليل، يجب أن تكون لديك مستخدم عادي غير جذري مع امتيازات sudo مكونة على خادمك. يمكنك معرفة كيفية تكوين حساب مستخدم عادي عن طريق اتباع دليلنا إعداد الخادم الأولي لـ Ubuntu 20.04.
سوف ترغب أيضًا اختياريًا في تسجيل اسم نطاق قبل إكمال الخطوات الأخيرة في هذا البرنامج التعليمي. لمعرفة المزيد حول إعداد اسم النطاق مع DigitalOcean، يرجى الرجوع إلى مقدمة إلى DNS DigitalOcean.
عندما تكون لديك حساب متاح، قم بتسجيل الدخول كمستخدم غير جذري للبدء.
الخطوة 1 – تثبيت Nginx
نظرًا لأن Nginx متاح في مستودعات Ubuntu الافتراضية، يمكن تثبيته من هذه المستودعات باستخدام نظام التعبئة apt
.
نظرًا لأن هذه هي تفاعلنا الأول مع نظام التعبئة apt
في هذه الجلسة، سنقوم بتحديث فهرس الحزم المحلي حتى نتمكن من الوصول إلى قوائم الحزم الأحدث. بعد ذلك، يمكننا تثبيت nginx
:
بعد قبول الإجراء، سيقوم apt
بتثبيت Nginx وأي تبعيات مطلوبة على الخادم الخاص بك.
الخطوة 2 – ضبط جدار الحماية
قبل اختبار Nginx، يجب ضبط برنامج جدار الحماية للسماح بالوصول إلى الخدمة. يُسجل Nginx نفسه كخدمة باستخدام ufw
عند التثبيت، مما يجعل من السهل السماح بالوصول إلى Nginx.
قم بسرد إعدادات التطبيقات التي يعرفها ufw
كيفية العمل معها عن طريق كتابة:
يجب أن تحصل على قائمة بملفات تكوين التطبيق:
OutputAvailable applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
كما هو موضح من خلال الإخراج، هناك ثلاثة ملفات تكوين متاحة لـ Nginx:
- Nginx الكامل: يفتح هذا الملف التكويني كل من المنفذ 80 (حركة مرور الويب العادية غير المشفرة) والمنفذ 443 (حركة مرور مشفرة ببروتوكول TLS/SSL)
- Nginx HTTP: يفتح هذا الملف التكويني فقط المنفذ 80 (حركة مرور الويب العادية غير المشفرة)
- Nginx HTTPS: يفتح هذا الملف التكويني فقط المنفذ 443 (حركة مرور مشفرة ببروتوكول TLS/SSL)
يُوصى بتمكين الملف التكويني الأكثر قيدًا والذي سيسمح لحركة المرور التي قمت بتكوينها. في الوقت الحالي، سنحتاج فقط إلى السماح بحركة المرور على المنفذ 80.
يمكنك تمكين ذلك عن طريق كتابة:
يمكنك التحقق من التغيير عن طريق كتابة:
سيوضح الإخراج أي حركة مرور HTTP مسموح بها:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
الخطوة 3 – التحقق من خادم الويب الخاص بك
في نهاية عملية التثبيت، يبدأ Ubuntu 20.04 Nginx. يجب أن يكون خادم الويب قد بدأ بالفعل ويعمل.
يمكننا التحقق من نظام التشغيل systemd
للتأكد من تشغيل الخدمة عن طريق كتابة:
Output● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
Memory: 3.5M
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process
كما تم تأكيده من خلال هذا الإخراج، بدأت الخدمة بنجاح. ومع ذلك، أفضل طريقة لاختبار هذا هي طلب صفحة فعلية من Nginx.
يمكنك الوصول إلى صفحة Nginx الافتراضية للتأكد من أن البرنامج يعمل بشكل صحيح عن طريق التنقل إلى عنوان IP الخادم الخاص بك. إذا كنت لا تعرف عنوان IP الخادم الخاص بك، يمكنك العثور عليه باستخدام أداة icanhazip.com، والتي ستعطيك عنوان IP العام الخاص بك كما تم استلامه من موقع آخر على الإنترنت:
عندما تحصل على عنوان IP الخادم الخاص بك، أدخله في شريط عنوان متصفحك:
http://your_server_ip
يجب أن تتلقى صفحة Nginx الافتراضية:
إذا كنت على هذه الصفحة، فإن الخادم الخاص بك يعمل بشكل صحيح وجاهز للإدارة.
الخطوة 4 – إدارة عملية Nginx
الآن بعد أن قمت بتشغيل خادم الويب الخاص بك، دعنا نستعرض بعض الأوامر الأساسية للإدارة.
لإيقاف خادم الويب الخاص بك، اكتب:
لبدء خادم الويب عندما يتوقف، اكتب:
لإيقاف الخدمة ثم بدء تشغيلها مرة أخرى، اكتب:
إذا كنت تقوم فقط بإجراء تغييرات في الإعدادات، يمكن أن يعيد Nginx التحميل في كثير من الأحيان دون إسقاط الاتصالات. للقيام بذلك، اكتب:
افتراضيًا، يتم تكوين Nginx للبدء تلقائيًا عند تشغيل الخادم. إذا لم يكن هذا ما تريده، يمكنك تعطيل هذا السلوك عن طريق كتابة:
لإعادة تمكين الخدمة للبدء عند التمهيد، يمكنك كتابة:
لقد تعلمت الآن الأوامر الأساسية للإدارة ويجب أن تكون جاهزًا لتكوين الموقع لاستضافة أكثر من نطاق واحد.
الخطوة 5 – إعداد كتل الخادم (موصى به)
عند استخدام خادم الويب Nginx، يمكن استخدام كتل الخادم (مشابهة للمضيفين الافتراضيين في Apache) لتغليف تفاصيل التكوين واستضافة أكثر من نطاق واحد من خادم واحد. سنقوم بإعداد نطاق يُسمى your_domain، ولكن يجب استبدال ذلك باسم النطاق الخاص بك.
Nginx على Ubuntu 20.04 يحتوي على كتلة خادم واحدة مفعلة افتراضيًا مُكونة لخدمة المستندات من دليل في /var/www/html
. بينما يعمل هذا بشكل جيد لموقع واحد، يمكن أن يصبح غير عملي إذا كنت تستضيف مواقع متعددة. بدلاً من تعديل /var/www/html
، دعنا نقوم بإنشاء هيكل دليل داخل /var/www
لموقعنا your_domain، متركًا /var/www/html
في مكانه كالدليل الافتراضي الذي يُخدم إذا لم يطابق طلب العميل أي مواقع أخرى.
أنشئ الدليل لـyour_domain على النحو التالي، باستخدام العلامة -p
لإنشاء أي دلائل أبوية ضرورية:
ثم، قم بتعيين ملكية الدليل باستخدام متغير البيئة $USER
:
إذا كنت لم تقم بتعديل قيمة umask
الخاصة بك، فإن أذونات جذور الويب الخاصة بك يجب أن تكون صحيحة. لضمان صحة أذوناتك والسماح للمالك بقراءة وكتابة وتنفيذ الملفات بينما يتم منح السماح فقط للقروبات والآخرين بالقراءة والتنفيذ، يمكنك إدخال الأمر التالي:
بعد ذلك، قم بإنشاء صفحة index.html
عينة باستخدام nano
أو محررك المفضل:
قم بإضافة الكود HTML العينة التالي:
احفظ وأغلق الملف بالضغط على Ctrl+X
للخروج، ثم عند الطلب على الحفظ، اضغط Y
ثم Enter
.
لكي يتمكن Nginx من تقديم هذا المحتوى، من الضروري إنشاء كتلة خادم بالتوجيهات الصحيحة. بدلاً من تعديل ملف التكوين الافتراضي مباشرةً، دعنا نقوم بإنشاء واحد جديد في /etc/nginx/sites-available/اسم_نطاقك
:
ألصق الكتلة التكوينية التالية، التي تشبه الافتراضية، ولكنها محدثة لدينا بالنسبة لدليلنا واسم النطاق:
لاحظ أننا قمنا بتحديث تكوين root
لدينا لديريتورينا الجديد، و server_name
لاسم النطاق الخاص بنا.
بعد ذلك، دعنا نقوم بتمكين الملف عن طريق إنشاء رابط منه إلى الدليل sites-enabled
، الذي يقرأ Nginx منه أثناء التشغيل:
ملاحظة: يستخدم Nginx ممارسة شائعة تُسمى الروابط الرمزية، أو الروابط الرمزية، لتتبع أي من كتل الخادم الخاصة بك مُمكَّنة. إن إنشاء رابط رمزي شبيه بإنشاء اختصار على القرص، بحيث يمكنك في وقت لاحق حذف الاختصار من دليل sites-enabled
بينما تحتفظ بكتلة الخادم في sites-available
إذا كنت ترغب في تمكينها.
الآن تم تمكين كتلتي خادم وتكوينهما للاستجابة للطلبات استنادًا إلى توجيهات listen
و server_name
(يمكنك قراءة المزيد حول كيفية معالجة Nginx لهذه التوجيهات هنا):
your_domain
: ستستجيب للطلبات المتعلقة بـyour_domain
وwww.your_domain
.default
: ستستجيب لأي طلبات على المنفذ 80 التي لا تتطابق مع الكتلتين الأخريين.
لتجنب مشكلة محتملة في ذاكرة الدلو التي يمكن أن تنشأ من إضافة أسماء خادم إضافية، من الضروري ضبط قيمة واحدة في ملف /etc/nginx/nginx.conf
. افتح الملف:
ابحث عن توجيه server_names_hash_bucket_size
واحذف رمز #
لإلغاء تعليق السطر. إذا كنت تستخدم nano، يمكنك البحث بسرعة عن الكلمات في الملف عن طريق الضغط على CTRL
و w
.
ملاحظة: تعليق الأسطر في الشفرة – عادةً عن طريق وضع #
في بداية السطر – هو طريقة أخرى لتعطيلها دون الحاجة إلى حذفها فعلياً. يتم شحن ملفات التكوين مع العديد من الخيارات المعلقة حتى يمكن تمكينها أو تعطيلها، عن طريق تبديلها بين الشفرة الفعالة والوثائق.
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
قم بحفظ وإغلاق الملف عند الانتهاء.
ثم، قم بالاختبار للتأكد من عدم وجود أخطاء في الصياغة النحوية في أي من ملفات Nginx الخاصة بك:
إذا لم تكن هناك مشاكل، قم بإعادة تشغيل Nginx لتمكين التغييرات الخاصة بك:
يجب أن يكون Nginx الآن يخدم اسم النطاق الخاص بك. يمكنك اختبار ذلك عن طريق الانتقال إلى http://your_domain
، حيث يجب أن ترى شيئًا مثل هذا:
الخطوة 6 – التعرف على الملفات والمجلدات المهمة في Nginx
الآن بعد أن تعرفت على كيفية إدارة خدمة Nginx نفسها، يجب أن تخصص بضع دقائق لتعرف على بعض المجلدات والملفات المهمة.
المحتوى
/var/www/html
: المحتوى الويب الفعلي، والذي بشكل افتراضي يتكون فقط من صفحة Nginx الافتراضية التي رأيتها سابقًا، يتم تقديمه من داخل دليل/var/www/html
. يمكن تغيير ذلك عن طريق تعديل ملفات تكوين Nginx.
تكوين الخادم
/etc/nginx
: دليل تكوين Nginx. جميع ملفات تكوين Nginx موجودة هنا./etc/nginx/nginx.conf
: ملف تكوين Nginx الرئيسي. يمكن تعديله لإجراء تغييرات على التكوين العام لـ Nginx./etc/nginx/sites-available/
: الدليل الذي يمكن فيه تخزين كتل الخوادم لكل موقع. لن يستخدم Nginx ملفات التكوين الموجودة في هذا الدليل ما لم يتم ربطها بالدليلsites-enabled
. بشكل عام، يتم إجراء جميع تكوينات كتل الخوادم في هذا الدليل، ثم يتم تمكينها عن طريق الربط بالدليل الآخر./etc/nginx/sites-enabled/
: الدليل الذي يتم فيه تخزين كتل الخوادم الفردية التي تم تمكينها. عادةً ما يتم إنشاؤها عن طريق الربط بملفات تكوين موجودة في الدليلsites-available
./etc/nginx/snippets
: يحتوي هذا الدليل على شظايا تكوين يمكن تضمينها في أماكن أخرى في تكوين Nginx. شرائح التكوين التي يمكن تكرارها بشكل متكرر هي مرشحات جيدة لإعادة التكوين في شظايا.
سجلات الخادم
/var/log/nginx/access.log
: يتم تسجيل كل طلب إلى خادم الويب الخاص بك في هذا الملف السجل ما لم يتم تكوين Nginx للقيام بغير ذلك./var/log/nginx/error.log
: سيتم تسجيل أي أخطاء Nginx في هذا السجل.
الاستنتاج
الآن بعد تثبيت خادم الويب الخاص بك، لديك العديد من الخيارات لنوع المحتوى الذي ترغب في تقديمه والتقنيات التي ترغب في استخدامها لإنشاء تجربة أكثر ثراءً.
إذا كنت ترغب في بناء ستاك تطبيق كامل الخدمة، تحقق من المقالة كيفية تثبيت Linux، Nginx، MySQL، PHP (LEMP stack) على Ubuntu 20.04.
لإعداد HTTPS لاسم النطاق الخاص بك باستخدام شهادة SSL مجانية باستخدام Let’s Encrypt، يجب أن تنتقل إلى كيفية تأمين Nginx باستخدام Let’s Encrypt على Ubuntu 20.04.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-20-04