دليل كامل مفصل خطوة بخطوة لتثبيت خادم الويب 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.