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

دليل كامل مفصل خطوة بخطوة لتثبيت خادم الويب Nginx وإعداده على نظام Ubuntu 20.04

Nginx هو خادم ويب وكيل عكسي مفتوح المصدر وشائع ومتاح على منصات متعددة. تم تطوير البرنامج بواسطة ايغور سيسويف كحل لمشكلة C10K وتم إصداره لأول مرة في عام 2004. مشكلة C10K هي مشكلة التعامل مع عشرة آلاف عميل في وقت واحد والتي لم تكن سهلة في أوائل العقد الأول من القرن الحادي والعشرين.

في هذا البرنامج التعليمي ، ننظر في كيفية تثبيت Nginx وإعداده على Ubuntu 20.04 LTS.

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

نظام مثبت عليه Ubuntu 20.04 و a سودو المستعمل. بالإضافة إلى ذلك ، يجب ألا يكون لديك خادم ويب آخر مثل Apache يعمل على المنفذ 80 أو 443.

تثبيت Nginx

يتوفر Nginx في مستودع Ubuntu 20.04 و ملائم يمكن استخدام مدير الحزم لتثبيته. لذلك ، لتثبيت Nginx ، افتح المحطة باستخدام السيطرة + alt + t و اهرب:

تحديث sudo apt && sudo apt install nginx

سيكتمل التثبيت قريبًا وسيبدأ برنامج Nginx daemon تلقائيًا في الخلفية. لذلك ، للتحقق من حالة Nginx ، قم بتشغيل:

sudo systemctl status nginx

بعد تشغيل الأمر أعلاه ، يجب أن تحصل على حالة Nginx كـ نشط (قيد التشغيل) باللون الأخضر كما هو موضح أدناه.

تكوين جدار حماية Ubuntu (UFW)

بشكل افتراضي ، يتم إغلاق المنافذ الصادرة HTTP (80) و HTTPS (443) على Ubuntu 20.04. بالإضافة إلى ذلك ، البرنامج الخفي الافتراضي لجدار الحماية ufw تم تعطيل لأن جميع المنافذ مغلقة.

وبالتالي ، للوصول إلى خادم Nginx من أنظمة أخرى ، ستحتاج إلى تمكين ufw وقم بإعداده بشكل صحيح للسماح بحركة المرور على المنفذ 80 و 443. قبل أن تقوم بتمكين ufw، اعلم أنه إذا كنت تقوم بإعداد Nginx على خادم بعيد ، فقم أولاً بتحديث ملف ufw قواعد للسماح ssh عن طريق الركض:

sudo ufw تسمح ssh

الأمر أعلاه يسمح بامتداد ssh الوصول إلى الخادم البعيد ، دون السماح ssh سيتم منعك من الوصول إلى الخادم البعيد.

بعد التمكين ssh الوصول ، يمكنك تمكين ufw البرنامج الخفي لجدار الحماية عن طريق تشغيل:

sudo ufw تمكين

الآن ، تحتاج إلى تغيير قواعد جدار الحماية للسماح بمنافذ HTTP و HTTPS حتى يتمكن Nginx من خدمة حركة مرور الويب. لتغيير القواعد ، قم بتشغيل:

sudo ufw تسمح بـ "Nginx Full"

Nginx ممتلئ يسمح لكل من منافذ HTTP و HTTPS لحركة المرور الواردة والصادرة من جميع عناوين IP.

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

حالة sudo ufw

سيخرج الأمر أعلاه القواعد التي أضفنا إليها ufw البرنامج الخفي لجدار الحماية.

الاتصال بخادم Nginx

الآن بعد أن قمنا بتثبيت Nginx وتكوينه ufw للسماح بمرور بيانات HTTP و HTTPS على الويب ، يجب أن تكون قادرًا على الوصول إلى خادم Nginx باستخدام عنوان IP الخاص بالخادم.

إذا كنت لا تعرف عنوان IP للخادم ، فاستخدم الأمر أدناه لاسترداده بسهولة.

عنوان IP إظهار eth0 | grep inet | awk '{print $ 2؛ } '| sed 's /\/.*$//'

بمجرد حصولك على عنوان IP ، الصقه في متصفحك واضغط على إدخال.

// your-server-ip

إذا تمت تهيئة كل شيء بشكل صحيح ، فيجب أن تكون قادرًا على رؤية صفحة الويب "مرحبًا بك في nginx!".

ملفات وأدلة Nginx

الآن بعد أن قمنا بتثبيت Nginx وتشغيله على الخادم الخاص بك. دعنا نلقي نظرة على بعض ملفات وأدلة Nginx المهمة التي سيتعين عليك استخدامها لتكوين موقع الويب / تطبيق الويب الخاص بك.

محتوى خادم الويب

يمكنك تكوين أي مكان تريد أن يكون دليلك الجذر لكتلة الخادم الخاص بك. HTML الافتراضي لـ Nginx مباشرة هو / var / www / html، حيث توجد صفحة "الترحيب" التي تم الوصول إليها سابقًا.

تشمل المواقع الأخرى التي تُستخدم عادةً كدليل جذر للنطاقات ما يلي:

  • /الصفحة الرئيسية//
  • / var / www / html /
  • /يختار، يقرر/

ملفات تكوين Nginx

توجد جميع ملفات تكوين Nginx بتنسيق / etc / nginx الدليل. دعونا نلقي نظرة على بعض الملفات المهمة التي نحتاجها لإعداد نطاق أساسي.

  • /etc/nginx/nginx.conf: يحتوي هذا الملف على كافة التكوينات اللازمة لتشغيل Nginx.
  • / etc / nginx / sites-available /: يحتوي هذا الدليل على كل تكوين كتلة الخادم للمجالات ، ولكن لم يتم تمكين / نشرها حاليًا وبالتالي لا يمكن الوصول إليها من قبل العملاء.
  • / etc / nginx / sites-enabled /: يحتوي هذا الدليل على المجالات النشطة / الممكّنة حاليًا التي يمكن للعملاء الوصول إليها. لتمكين مجال نحتاج إلى ربط ملف تكوين المجال من المواقع المتاحة الى تمكين المواقع الدليل.
  • / etc / nginx / snippets/: في هذا الدليل ، يمكننا تخزين أجزاء التكوين التي يُحتمل إعادة استخدامها. إنه يوفر الكثير من الوقت في بيئة الإنتاج نظرًا لحقيقة أنه يمكن إعادة استخدام مقاطع / كتل التكوين.

سجلات الخادم

يسجل Nginx الأحداث / الأنشطة ويخزنها في ملفات السجل في ملف / var / log / nginx الدليل. يسجل Nginx الأنشطة في هذه الملفات:

  • /var/log/nginx/access.log: يسجل هذا الملف العملاء الذين وصلوا إلى خادم Nginx. تتضمن التفاصيل عنوان IP الخاص بالعميل والوقت والتاريخ والمتصفح المستخدم للوصول إلى الخادم ونظام التشغيل.
  • /var/log/nginx/error.log: يسجل هذا الملف الأخطاء التي واجهها خادم Nginx أثناء التشغيل.

لذلك ، في هذا القسم ، ألقينا نظرة سريعة على بعض ملفات وأدلة Nginx المهمة التي تكفي للبدء.

إعداد كتل الخادم

الآن بعد أن أصبح لدينا بعض المعرفة الأساسية حول ملفات وخادم Nginx ، نحن جاهزون لإعداد كتلة الخادم الخاصة بنا. تشبه كتل الخادم مضيفات Apache الافتراضية.

سننظر في كيفية إنشاء كتلة الخادم ونوضح أننا سنستخدمها example.com كمجال في عملية الإنشاء.

💡 استبدل example.com مع اسم المجال الخاص بك.

قبل أن نبدأ في تكوين Server Blocks ، نحتاج إلى إنشاء دليل ليكون بمثابة الدليل الجذر لمحتوى موقع الويب. دعونا نصنع /var/www/example.com/html دليل المجال باستخدام مكدير يأمر.

sudo mkdir -p /var/www/example.com/html

ال -p الخيار سيخلق جميع الدلائل الأصل المطلوبة. هذا هو ، سوف تخلق example.com دليل أصل ل لغة البرمجة إذا لم يكن موجودًا.

قم بتغيير ملكية الدليل باستخدام ملف USER دولار متغيرات البيئة:

sudo chown -R $ USER: $ USER /var/www/example.com/html

بعد ذلك ، قم بإنشاء ملف index.html الملف الذي سيتم الوصول إليه عند زيارة المجال الذي يتم تكوينه. هذا لغرض التوضيح فقط.

nano /var/www/example.com/html/index.html

الصق المحتوى التالي في الملف الذي أنشأناه للتو على الخادم.

  مرحبًا بك في example.com! 

يو! يمكن الوصول إلى example.com!

صحافة السيطرة + o لكتابة وحفظ index.html file ثم اضغط على السيطرة + x للخروج نانو محرر.

الآن أخيرًا يمكننا الانتقال إلى إنشاء كتلة خادم ، حتى يتمكن Nginx من خدمة index.html عندما يذهب بعض المستخدمين إلى example.com. لذلك لإنشاء كتلة خادم ، نحتاج إلى إنشاء ملف تكوين باسم example.com في المواقع المتاحة الدليل. للقيام بذلك ، نستخدم nano ونشغل:

sudo nano /etc/nginx/sites-available/example.com

وبعد ذلك ، اكتب أو انسخ / الصق التكوين التالي. ثم اضغط السيطرة + o وادخل للكتابة والحفظ. وبالمثل ، اضغط على السيطرة + x لإغلاق محرر nano.

الخادم {الاستماع 80 ؛ استمع [::]: 80 ؛ server_name example.com www.example.com ؛ الجذر /var/www/example-domain.com/html ؛ index.html ؛ الموقع / {try_files $ uri $ uri / = 404 ؛ }}

التكوين أعلاه مشابه لتكوين كتلة الخادم الافتراضي ، لقد قمنا بتغيير جذر بيان للإشارة إلى دليل الجذر الجديد لدينا وتغيير اسم الخادم لاسم المجال الخاص بنا. بينما ال موقعك{} البيان بمثابة بيان خطأ إذا لم يتم العثور على الملفات ويعرض الخطأ 404 للعميل.

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

sudo ln -s /etc/nginx/sites-available/example.com / etc / nginx / sites-enabled

سيتم إنشاء ارتباط في تمكين الموقع الدليل والآن example.com يجب تمكينها. الآن لدينا مجموعتان من كتل الخوادم مُمكَّنة على خادم Nginx الخاص بنا والتي ستستجيب للطلب بناءً على يستمع و اسم_الخدمة التوجيهات المحفوظة في example.com تكوين كتلة الخادم.

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

sudo nginx -t

الآن ، أخيرًا أعد تشغيل Nginx لتطبيق التغييرات عن طريق تشغيل الأمر التالي:

أعد تشغيل sudo systemctl nginx

سيبدأ Nginx في خدمة كتلة الخادم الخاص بك الآن ، يمكنك الانتقال إلى // اسم المجال الخاص بك وشاهد صفحة الويب الخاصة بك مباشرة.

ملحوظة: لكي يعمل القسم أعلاه ، ستحتاج إلى إعداد نطاقك الخاص واستبداله example.com مع اسم المجال الخاص بك. أيضًا ، سيتعين عليك تهيئة DNS لنطاقك للإشارة إلى عنوان IP لخادم Nginx.

في الختام ، نظرنا في كيفية تثبيت Nginx ، و config ufw للسماح بالوصول عن بُعد إلى خادم Nginx ، المتصل بـ Nginx عن بُعد ، تعرّف على بعض ملفات وأدلة Nginx الأساسية وتعلّم كيفية إعداد كتلة خادم.

لمعرفة المزيد حول Nginx ومعرفة المزيد عنه ، قد ترغب في رؤية Nginx wiki.