كيفية تثبيت Nginx على Ubuntu 18.04

0 الأسهم
0
0
0
0

مقدمة

يُعدّ Nginx أحد أشهر خوادم الويب في العالم، وهو مسؤول عن استضافة بعض أكبر المواقع وأكثرها زيارة على الإنترنت. في معظم الحالات، يكون أكثر كفاءة في استهلاك الموارد من Apache، ويمكن استخدامه كخادم ويب أو وكيل عكسي.

في هذا الدليل، ستتعلم كيفية تثبيت Nginx على خادم Ubuntu 18.04 وعن ملفات ومجلدات Nginx المهمة.

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

قبل البدء بهذا الدليل، ستحتاج إلى إعداد حساب مستخدم عادي (ليس حساب الجذر) مع صلاحيات sudo وجدار حماية أساسي على خادمك. يمكنك معرفة كيفية إعداد حساب مستخدم عادي باتباع دليل إعداد الخادم الأساسي لنظام Ubuntu 18.04.

بمجرد حصولك على حساب متاح، قم بتسجيل الدخول كمستخدم غير مسؤول (ليس الجذر) للبدء.

الخطوة 1 – تثبيت Nginx

بما أن Nginx متوفر في مستودعات Ubuntu الافتراضية، فيمكن تثبيته من هذه المستودعات باستخدام نظام التغليف apt.

بما أن هذه قد تكون أول تجربة لك مع نظام إدارة الحزم apt في هذه الجلسة، قم بتحديث دليل الحزم المحلي لديك للوصول إلى أحدث قوائم الحزم. بعد ذلك، يمكنك تثبيت nginx.

sudo apt update
sudo apt install nginx

بعد قبول الإجراء، سيقوم apt بتثبيت Nginx وأي تبعيات مطلوبة على الخادم الخاص بك.

الخطوة 2 – تكوين جدار الحماية

قبل اختبار Nginx، يجب تهيئة برنامج جدار الحماية للسماح بالوصول إلى الخدمة. بعد التثبيت، يُسجل Nginx نفسه كخدمة لدى ufw، مما يُسهّل الوصول إلى Nginx.

اعرض قائمة بتكوينات التطبيقات التي يعرف برنامج ufw كيفية التعامل معها عن طريق كتابة ما يلي:

sudo ufw app list

يجب أن تكون مخرجاتك عبارة عن قائمة بملفات تعريف التطبيقات:

Output
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

تُظهر هذه القائمة الملفات التعريفية الثلاثة المتاحة لـ Nginx:

  • Nginx Full: يفتح هذا الملف الشخصي كلاً من المنفذ 80 (حركة مرور الويب العادية وغير المشفرة) والمنفذ 443 (حركة مرور TLS/SSL المشفرة).
  • Nginx HTTP: هذا الملف التعريفي يفتح المنفذ 80 فقط (حركة مرور الويب العادية وغير المشفرة)
  • Nginx HTTPS: يفتح هذا الملف التعريفي المنفذ 443 فقط (حركة مرور مشفرة بتقنية TLS/SSL)

يُنصح بتفعيل أكثر الإعدادات تقييدًا التي تسمح بمرور البيانات التي قمتَ بتكوينها. بما أنك لم تُكوّن بروتوكول SSL لخادمك في هذا الدليل، فكل ما عليك فعله هو السماح بمرور البيانات على المنفذ 80.

يمكنك تفعيل هذه الخاصية بكتابة ما يلي:

sudo ufw allow 'Nginx HTTP'

ثم قم بتأكيد التغيير:

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 – التحقق من خادم الويب الخاص بك

في نهاية عملية التثبيت، سيقوم نظام أوبونتو 18.04 بتشغيل Nginx. من المفترض أن يكون خادم الويب قيد التشغيل بالفعل.

تحقق من خلال الأمر systemd init للتأكد من أن الخدمة قيد التشغيل:

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: en
Active: active (running) since Fri 2021-10-01 21:36:15 UTC; 35s ago
Docs: man:nginx(8)
Main PID: 9039 (nginx)
Tasks: 2 (limit: 1151)
CGroup: /system.slice/nginx.service
├─9039 nginx: master process /usr/sbin/nginx -g daemon on; master_pro
└─9041 nginx: worker process

يُظهر هذا الناتج أن الخدمة قد بدأت بنجاح. مع ذلك، فإن أفضل طريقة للاختبار هي طلب صفحة من Nginx فعليًا.

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

جرّب كتابة ما يلي في سطر أوامر الخادم الخاص بك:

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

ستظهر لك بضعة أسطر. يمكنك تجربة كل سطر منها في متصفحك للتأكد من عملها.

أما البديل فهو تشغيل الأمر التالي، والذي من شأنه إنشاء عنوان IP العام الخاص بك كما يتم تحديده من موقع آخر على الإنترنت:

curl -4 icanhazip.com

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

http://your_server_ip

يجب أن تحصل على صفحة Nginx الافتراضية:

تأتي هذه الصفحة مزودة بـ Nginx للتحقق من أن الخادم يعمل بشكل صحيح.

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

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

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

sudo systemctl stop nginx

لإعادة تشغيل خادم الويب في حال توقفه، اكتب ما يلي:

sudo systemctl start nginx

لإيقاف الخدمة ثم إعادة تشغيلها، اكتب ما يلي:

sudo systemctl restart nginx

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

sudo systemctl reload nginx

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

sudo systemctl disable nginx

لإعادة تفعيل الخدمة لتبدأ عند بدء التشغيل، يمكنك كتابة ما يلي:

sudo systemctl enable nginx

يجب أن يُعاد تشغيل Nginx تلقائيًا عند بدء تشغيل الخادم.

الخطوة 5 - إعداد كتل الخادم (مستحسن)

عند استخدام خادم الويب Nginx، يمكن استخدام كتل الخادم (المشابهة للمضيفات الافتراضية في Apache) لتغليف تفاصيل التكوين واستضافة أكثر من نطاق واحد من خادم واحد. سنقوم بإنشاء نطاق باسم your_domain، ولكن عليك استبداله باسم نطاقك الخاص. لمزيد من المعلومات حول إعداد أسماء النطاقات مع DigitalOcean، راجع مقدمتنا حول نظام أسماء النطاقات (DNS) في DigitalOcean.

يحتوي Nginx في Ubuntu 18.04 على وحدة خادم مُفعّلة افتراضيًا مُهيأة لعرض المستندات خارج الدليل الموجود في /var/www/html. على الرغم من أن هذا يعمل بشكل جيد لموقع واحد، إلا أنه قد يصبح مُرهقًا عند استضافة مواقع متعددة. بدلًا من تغيير /var/www/html، لنُنشئ بنية دليل في /var/www لموقعنا your_domain، ونترك /var/www/html كدليل افتراضي للعرض في حال عدم تطابقه مع طلب العميل.

قم بإنشاء دليل لـ your_domain على النحو التالي، باستخدام العلامة -p لإنشاء أي أدلة رئيسية ضرورية:

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

بعد ذلك، قم بتعيين ملكية الدليل باستخدام متغير البيئة $USER:

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

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

sudo chmod -R 755 /var/www/your_domain

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

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

بالداخل، أضف عينة HTML التالية:

<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Success! The your_domain server block is working!</h1>
</body>
</html>

احفظ الملف وأغلقه عند الانتهاء. إذا كنت تستخدم محرر النصوص nano، يمكنك الخروج بالضغط على CTRL + X ثم Y ثم ENTER.

لكي يتمكن Nginx من عرض هذا المحتوى، عليك إنشاء قسم خادم يتضمن التعليمات الصحيحة. بدلاً من تعديل ملف التكوين الافتراضي مباشرةً، أنشئ ملفًا جديدًا في المسار /etc/nginx/sites-available/your_domain:

sudo nano /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.com www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}

لاحظ أننا قمنا بتحديث إعدادات الجذر إلى الدليل الجديد، واسم الخادم إلى اسم النطاق. احفظ الملف وأغلقه عند الانتهاء.

ثم قم بتمكين الملف عن طريق إنشاء رابط منه إلى دليل المواقع الممكّنة، والذي سيقرأ منه Nginx عند بدء تشغيله:

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

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

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

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

sudo nano /etc/nginx/nginx.conf

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

...
http {
...
server_names_hash_bucket_size 64;
...
}
...

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

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

sudo nginx -t

إذا لم تكن هناك أي مشاكل، أعد تشغيل Nginx لكي تسري التغييرات التي أجريتها:

sudo systemctl restart 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/: هو المجلد الذي تُخزَّن فيه إعدادات الخادم المُفعَّلة لكل موقع. عادةً ما يتم إنشاء هذه الإعدادات عن طريق ربطها بملفات التكوين الموجودة في مجلد المواقع الحالي.
  • /etc/nginx/snippets: يحتوي هذا المجلد على مقتطفات من التعليمات البرمجية التي يمكن تضمينها في أماكن أخرى ضمن إعدادات Nginx. تُعدّ أقسام الإعدادات التي يُحتمل تكرارها مرشحةً جيدةً لإعادة تحويلها إلى مقتطفات.
تقارير الخادم
  • /var/log/nginx/access.log: يتم تسجيل كل طلب إلى خادم الويب الخاص بك في ملف السجل هذا، ما لم يتم تكوين Nginx بشكل مختلف.
  • /var/log/nginx/error.log: يتم تسجيل أي أخطاء في Nginx في هذا السجل.

نتيجة

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً