كيفية تثبيت إنجينكس على ديبيان 10

مقدمة

إنجينكس هو خادم ويب مجاني ومفتوح المصدر يُستخدم لاستضافة مواقع الويب والتطبيقات بجميع الأحجام. تُعرف البرمجيات بتأثيرها المنخفض على موارد الذاكرة وقابليتها للتوسع العالية، وبتصميمها المعماري القائم على الأحداث الذي يمكن أن يوفر أداءً آمنًا ومتوقعًا. أكثر من مجرد خادم ويب، يعمل إنجينكس أيضًا كموازن حمل، وذاكرة تخزين مؤقتة لبروتوكول نقل النص الفائق (HTTP)، ووكيل عكسي.

في هذا الدليل، ستقوم بتثبيت إنجينكس على خادم Debian 10 الخاص بك.

المتطلبات المسبقة

قبل البدء في هذا الدليل، يجب أن تكون لديك مستخدم عادي غير جذري مع امتيازات sudo مكونة على خادمك. كما يجب أن يكون لديك جدار ناري نشط. يمكنك تعلم كيفية إعداد ذلك من خلال متابعة دليلنا إعداد الخادم الأولي لـ Debian 10.

الخطوة 1 – تثبيت إنجينكس

إنجينكس متاح في مستودعات البرمجيات الافتراضية لـ Debian، مما يجعل من الممكن تثبيته باستخدام أدوات إدارة الحزم التقليدية.

أولاً، قم بتحديث فهرس الحزم المحلي ليعكس أحدث التغييرات في المصدر:

  1. sudo apt update

ثم، قم بتثبيت حزمة nginx:

  1. sudo apt install nginx

قم بتأكيد التثبيت، عن طريق إدخال Y، ثم اضغط Enter للمتابعة. سيقوم apt بتثبيت Nginx وأي تبعيات ضرورية على الخادم الخاص بك.

الخطوة الثانية – ضبط جدار الحماية

قبل اختبار Nginx، من الضروري تعديل إعدادات جدار الحماية للسماح بالوصول من الخارج إلى منافذ الويب الافتراضية. بناءً على افتراض أنك اتبعت التعليمات في المتطلبات الأولية، يجب أن يكون لديك جدار حماية UFW مكون لتقييد الوصول إلى الخادم الخاص بك.

أثناء التثبيت، يُسجل Nginx نفسه مع UFW لتوفير بعض ملفات التعريف التطبيقية التي يمكن استخدامها لتمكين أو تعطيل الوصول إلى Nginx من خلال جدار الحماية.

قم بعرض قائمة ملفات التعريف التطبيقية لـ ufw بكتابة:

  1. sudo ufw app list

يجب أن تحصل على قائمة بملفات تعريف التطبيقات:

Output
Available 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.

يمكنك تمكين ذلك عن طريق كتابة:

  1. sudo ufw allow 'Nginx HTTP'

يمكنك التحقق من التغيير عن طريق الكتابة:

  1. sudo ufw status

ما يظهر هو الحركة المسموح بها لـ HTTP في الإخراج:

Output
Status: 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 للتأكد من تشغيل الخدمة عن طريق الكتابة:

  1. systemctl status nginx
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 الخادم الخاص بك، يمكنك كتابة هذا في موجه الأوامر الخاص بالخادم:

  1. ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

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

عندما تحصل على عنوان IP الخادم الخاص بك، أدخله في شريط عنوان متصفحك:

http://your_server_ip

يجب أن تظهر صفحة الهبوط الافتراضية لـ Nginx في متصفح الويب الخاص بك:

تم تضمين هذه الصفحة مع Nginx لإظهار لك أن الخادم يعمل بشكل صحيح.

الخطوة 4 – إدارة عملية Nginx

الآن بعد أن لديك خادم الويب الخاص بك قيد التشغيل، يمكنك مراجعة بعض الأوامر الأساسية للإدارة.

لإيقاف خادم الويب الخاص بك، اكتب:

  1. sudo systemctl stop nginx

لبدء تشغيل خادم الويب عندما يتوقف، اكتب:

  1. sudo systemctl start nginx

لإيقاف الخدمة ثم بدء التشغيل مرة أخرى، اكتب:

  1. sudo systemctl restart nginx

إذا كنت تقوم بإجراء تغييرات في التكوين، يمكن لـ Nginx بشكل عام إعادة التحميل دون إسقاط الاتصالات. للقيام بذلك، اكتب:

  1. sudo systemctl reload nginx

بشكل افتراضي، يتم تكوين Nginx للبدء تلقائيًا عند تشغيل الخادم. إذا لم يكن هذا ما تريده، يمكنك تعطيل هذه السلوكية بكتابة:

  1. sudo systemctl disable nginx

لإعادة تمكين الخدمة للبدء تلقائيًا عند التمهيد، يمكنك كتابة:

  1. sudo systemctl enable 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 لإنشاء أي دلائل أبوية ضرورية:

  1. sudo mkdir -p /var/www/your_domain/html

بعد ذلك، قم بتعيين ملكية الدليل باستخدام متغير البيئة $USER، الذي يجب أن يشير إلى مستخدم النظام الحالي:

  1. sudo chown -R $USER:$USER /var/www/your_domain/html

يجب أن تكون أذونات جذر موقع الويب الخاص بك صحيحة إذا لم تقم بتعديل قيمة umask الخاصة بك، ولكن يمكنك التأكد من ذلك عن طريق كتابة:

  1. sudo chmod -R 755 /var/www/your_domain

بعد ذلك، قم بإنشاء صفحة index.html عينية باستخدام nano أو محرر النص المفضل لديك:

  1. nano /var/www/your_domain/html/index.html

داخلها، أضف النموذج الاتي لـ HTML:

/var/www/your_domain/html/index.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/اسم_نطاقك:

  1. sudo nano /etc/nginx/sites-available/your_domain

أضف الكتلة التكوينية التالية، والتي تشبه الافتراضية ولكن مُحدثة للدليل واسم النطاق الجديد:

/etc/nginx/sites-available/your_domain
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 أثناء البدء:

  1. sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

يحتوي خادمك الآن على كتلتي خادم مُمكّنتين ومُكونتين للرد على الطلبات استنادًا إلى توجيهاتها listen و server_name (يمكنك قراءة المزيد حول كيفية معالجة Nginx لهذه التوجيهات هنا):

  • اسم_نطاقك: سيستجيب للطلبات على اسم_نطاقك و www.اسم_نطاقك.
  • افتراضي: سيستجيب لأي طلبات على منفذ 80 التي لا تتطابق مع الكتلتين الأخريين.

لتجنب مشكلة ذاكرة دلو الهاش المحتملة التي قد تنشأ عن إضافة أسماء خادم إضافية إلى تكوينك، من الضروري ضبط قيمة واحدة في ملف /etc/nginx/nginx.conf. قم بفتح الملف:

  1. sudo nano /etc/nginx/nginx.conf

ابحث عن توجيه server_names_hash_bucket_size وقم بإزالة رمز # لإلغاء تعليق السطر:

/etc/nginx/nginx.conf
...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

احفظ وأغلق الملف عند الانتهاء.

بعد ذلك، قم بإجراء اختبار للتأكد من عدم وجود أخطاء في صيغة أي من ملفات Nginx الخاصة بك:

  1. sudo nginx -t

إذا لم تكن هناك مشاكل، فإن الناتج سيكون كالتالي:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

بمجرد مرور اختبار التكوين بنجاح، أعد تشغيل Nginx لتمكين التغييرات:

  1. sudo systemctl restart 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