مقدمة
إنجينكس هو خادم ويب مجاني ومفتوح المصدر يُستخدم لاستضافة مواقع الويب والتطبيقات بجميع الأحجام. تُعرف البرمجيات بتأثيرها المنخفض على موارد الذاكرة وقابليتها للتوسع العالية، وبتصميمها المعماري القائم على الأحداث الذي يمكن أن يوفر أداءً آمنًا ومتوقعًا. أكثر من مجرد خادم ويب، يعمل إنجينكس أيضًا كموازن حمل، وذاكرة تخزين مؤقتة لبروتوكول نقل النص الفائق (HTTP)، ووكيل عكسي.
في هذا الدليل، ستقوم بتثبيت إنجينكس على خادم Debian 10 الخاص بك.
المتطلبات المسبقة
قبل البدء في هذا الدليل، يجب أن تكون لديك مستخدم عادي غير جذري مع امتيازات sudo مكونة على خادمك. كما يجب أن يكون لديك جدار ناري نشط. يمكنك تعلم كيفية إعداد ذلك من خلال متابعة دليلنا إعداد الخادم الأولي لـ Debian 10.
الخطوة 1 – تثبيت إنجينكس
إنجينكس متاح في مستودعات البرمجيات الافتراضية لـ Debian، مما يجعل من الممكن تثبيته باستخدام أدوات إدارة الحزم التقليدية.
أولاً، قم بتحديث فهرس الحزم المحلي ليعكس أحدث التغييرات في المصدر:
ثم، قم بتثبيت حزمة nginx
:
قم بتأكيد التثبيت، عن طريق إدخال Y
، ثم اضغط Enter
للمتابعة. سيقوم apt
بتثبيت Nginx وأي تبعيات ضرورية على الخادم الخاص بك.
الخطوة الثانية – ضبط جدار الحماية
قبل اختبار Nginx، من الضروري تعديل إعدادات جدار الحماية للسماح بالوصول من الخارج إلى منافذ الويب الافتراضية. بناءً على افتراض أنك اتبعت التعليمات في المتطلبات الأولية، يجب أن يكون لديك جدار حماية UFW مكون لتقييد الوصول إلى الخادم الخاص بك.
أثناء التثبيت، يُسجل Nginx نفسه مع UFW لتوفير بعض ملفات التعريف التطبيقية التي يمكن استخدامها لتمكين أو تعطيل الوصول إلى Nginx من خلال جدار الحماية.
قم بعرض قائمة ملفات التعريف التطبيقية لـ ufw
بكتابة:
يجب أن تحصل على قائمة بملفات تعريف التطبيقات:
OutputAvailable applications:
...
Nginx Full
Nginx HTTP
Nginx HTTPS
...
كما ترى، هناك ثلاثة ملفات تعريف تطبيقية متاحة لـ Nginx:
- Nginx Full: هذا الملف يفتح كل من المنفذ
80
(حركة مرور الويب العادية غير المشفرة) والمنفذ443
(حركة مرور مشفرة ببروتوكول TLS/SSL) - Nginx HTTP: هذا الملف يفتح فقط المنفذ
80
(حركة مرور الويب العادية غير المشفرة) - نجينكس HTTPS: يفتح هذا الملف الشخصي فقط منفذ
443
(حركة المرور المشفرة ببروتوكول TLS/SSL)
يُوصى بتمكين الملف الشخصي الأكثر تقييدًا الذي سيسمح لك بالحركة التي قمت بتكوينها. نظرًا لأنك لم تقم بتكوين TLS/SSL لخادمك بعد في هذا الدليل، فستحتاج فقط إلى السماح بحركة المرور لـ HTTP على منفذ 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 – التحقق من خادم الويب الخاص بك
في نهاية عملية التثبيت، يبدأ Debian 10 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 Tue 2022-06-28 18:42:58 UTC; 49s ago
Docs: man:nginx(8)
Main PID: 2729 (nginx)
Tasks: 2 (limit: 1167)
Memory: 7.2M
CGroup: /system.slice/nginx.service
├─2729 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2730 nginx: worker process
يكشف هذا الإخراج أن الخدمة بدأت بنجاح. ومع ذلك، الطريقة الأفضل لاختبار ذلك هي طلب صفحة من نجينكس بالفعل.
يمكنك الوصول إلى صفحة نجينكس الافتراضية للتأكد من تشغيل البرنامج بشكل صحيح عن طريق التنقل إلى عنوان IP الخادم الخاص بك. إذا لم تكن تعرف عنوان IP الخادم الخاص بك، يمكنك كتابة هذا في موجه الأوامر الخاص بالخادم:
ستحصل على عدة سطور رد. يمكنك تجربة كل منها في متصفح الويب الخاص بك لمعرفة ما إذا كانت تعمل.
عندما تحصل على عنوان IP الخادم الخاص بك، أدخله في شريط عنوان متصفحك:
http://your_server_ip
يجب أن تظهر صفحة الهبوط الافتراضية لـ Nginx في متصفح الويب الخاص بك:
تم تضمين هذه الصفحة مع Nginx لإظهار لك أن الخادم يعمل بشكل صحيح.
الخطوة 4 – إدارة عملية Nginx
الآن بعد أن لديك خادم الويب الخاص بك قيد التشغيل، يمكنك مراجعة بعض الأوامر الأساسية للإدارة.
لإيقاف خادم الويب الخاص بك، اكتب:
لبدء تشغيل خادم الويب عندما يتوقف، اكتب:
لإيقاف الخدمة ثم بدء التشغيل مرة أخرى، اكتب:
إذا كنت تقوم بإجراء تغييرات في التكوين، يمكن لـ Nginx بشكل عام إعادة التحميل دون إسقاط الاتصالات. للقيام بذلك، اكتب:
بشكل افتراضي، يتم تكوين Nginx للبدء تلقائيًا عند تشغيل الخادم. إذا لم يكن هذا ما تريده، يمكنك تعطيل هذه السلوكية بكتابة:
لإعادة تمكين الخدمة للبدء تلقائيًا عند التمهيد، يمكنك كتابة:
الخطوة 5 – إعداد كتل الخوادم (اختياري)
عند استخدام خادم الويب Nginx، يمكن استخدام كتل الخادم (مماثلة للمضيفين الظاهريين في Apache) لتجميع تفاصيل التكوين واستضافة أكثر من نطاق على خادم واحد. في الأوامر التالية، قم بتغيير your_domain
بمسمى النطاق الخاص بك. لمعرفة المزيد حول إعداد اسم النطاق مع DigitalOcean، انظر إلى مقدمة DigitalOcean DNS.
خادم Nginx على Debian 10 لديه كتلة خادم واحدة مُمكّنة افتراضيًا مُكونة لتقديم المستندات من داخل دليل في /var/www/html
. بينما يعمل هذا بشكل جيد لموقع واحد، يمكن أن يكون غير قابل للإدارة إذا كنت تستضيف عدة مواقع. بدلاً من تعديل /var/www/html
، قم بإنشاء هيكل دليل داخل /var/www
لموقع your_domain
، متركًا /var/www/html
في مكانه كالدليل الافتراضي الذي سيتم تقديمه إذا لم يتطابق طلب العميل مع أي مواقع أخرى.
أنشئ الدليل لـ your_domain
على النحو التالي، باستخدام العلامة -p
لإنشاء أي دلائل أبوية ضرورية:
بعد ذلك، قم بتعيين ملكية الدليل باستخدام متغير البيئة $USER
، الذي يجب أن يشير إلى مستخدم النظام الحالي:
يجب أن تكون أذونات جذر موقع الويب الخاص بك صحيحة إذا لم تقم بتعديل قيمة umask
الخاصة بك، ولكن يمكنك التأكد من ذلك عن طريق كتابة:
بعد ذلك، قم بإنشاء صفحة index.html
عينية باستخدام nano
أو محرر النص المفضل لديك:
داخلها، أضف النموذج الاتي لـ HTML:
<html>
<head>
<title>Welcome to your_domain</title>
</head>
<body>
<h1>Success! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
<p>This is a sample page.</p>
</body>
</html>
احفظ وأغلق الملف عند الانتهاء. في nano
يمكنك القيام بذلك عن طريق الضغط على CTRL + X
ثم Y
ثم ENTER
.
لكي يخدم Nginx هذا المحتوى، يجب عليك إنشاء كتلة خادم بالتوجيهات الصحيحة التي تشير إلى الجذر الخاص بالويب المخصص لك. بدلاً من تعديل ملف التكوين الافتراضي مباشرة، قم بإنشاء ملف جديد في /etc/nginx/sites-available/اسم_نطاقك
:
أضف الكتلة التكوينية التالية، والتي تشبه الافتراضية ولكن مُحدثة للدليل واسم النطاق الجديد:
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
لاحظ التحديث في تكوين root
إلى الدليل الجديد الخاص بك و server_name
إلى اسم نطاقك. تذكر أن تستبدل اسم_نطاقك
بالاسم الفعلي لنطاقك.
بعد ذلك، قم بتمكين هذه الكتلة الخادم عن طريق إنشاء رابط رمزي إلى ملف التكوين المخصص داخل دليل sites-enabled
، الذي يقرأ منه Nginx أثناء البدء:
يحتوي خادمك الآن على كتلتي خادم مُمكّنتين ومُكونتين للرد على الطلبات استنادًا إلى توجيهاتها listen
و server_name
(يمكنك قراءة المزيد حول كيفية معالجة Nginx لهذه التوجيهات هنا):
اسم_نطاقك
: سيستجيب للطلبات علىاسم_نطاقك
وwww.اسم_نطاقك
.افتراضي
: سيستجيب لأي طلبات على منفذ80
التي لا تتطابق مع الكتلتين الأخريين.
لتجنب مشكلة ذاكرة دلو الهاش المحتملة التي قد تنشأ عن إضافة أسماء خادم إضافية إلى تكوينك، من الضروري ضبط قيمة واحدة في ملف /etc/nginx/nginx.conf
. قم بفتح الملف:
ابحث عن توجيه server_names_hash_bucket_size
وقم بإزالة رمز #
لإلغاء تعليق السطر:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
احفظ وأغلق الملف عند الانتهاء.
بعد ذلك، قم بإجراء اختبار للتأكد من عدم وجود أخطاء في صيغة أي من ملفات Nginx الخاصة بك:
إذا لم تكن هناك مشاكل، فإن الناتج سيكون كالتالي:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
بمجرد مرور اختبار التكوين بنجاح، أعد تشغيل Nginx لتمكين التغييرات:
يجب أن يكون Nginx الآن يخدم اسم النطاق الخاص بك. يمكنك اختبار ذلك عن طريق التنقل إلى http://your_domain
. يجب أن يتم عرض الHTML المخصص الذي قمت بإنشائه في المجلد /var/www/your_domain/html/index.html
هنا:
الخطوة 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 في هذا السجل.
الختام
الآن بعد تثبيت خادم الويب الخاص بك، لديك العديد من الخيارات لنوع المحتوى الذي يمكنك تقديمه والتقنيات التي يمكنك استخدامها لإنشاء تجربة أكثر غنى لمستخدميك.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-10