ديف أوبس

دليل تثبيت وضبط Nginx

تثبيت وضبط خادم Nginx: دليل مفصل

في عالم إدارة الخوادم، يعد Nginx أحد أكثر الخوادم شهرة في الوقت الحاضر. يتميز Nginx بقدراته العالية على التعامل مع عدد كبير من الزوار، ويُستخدم على نطاق واسع كخادم ويب أو كعكاز للتوجيه العكسي (Reverse Proxy) أو خادم بريد إلكتروني. سنقوم في هذا المقال بشرح كيفية تثبيت وضبط خادم Nginx بشكل مفصل، متناولين جميع الخطوات اللازمة لإعداده بشكل مناسب على أنظمة تشغيل مختلفة مثل Linux.

1. مقدمة عن Nginx

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

يعتبر Nginx أيضًا خادمًا عالي الأداء ومثاليًا للعمل في بيئات تطبيقات الويب الحديثة. كما يتميز بقدرته على العمل كـ Load Balancer أو كـ Proxy مع مرونة عالية، بالإضافة إلى تقديم مستويات أمان متقدمة.

2. خطوات تثبيت Nginx على خادم Linux

2.1 تثبيت Nginx على توزيعات Debian/Ubuntu

  1. تحديث النظام:
    قبل البدء في التثبيت، من المهم تحديث جميع حزم النظام لضمان تثبيت أحدث الإصدارات المتوافقة:

    bash
    sudo apt update sudo apt upgrade
  2. تثبيت Nginx:
    بعد تحديث النظام، يمكن تثبيت Nginx بسهولة باستخدام مدير الحزم APT:

    bash
    sudo apt install nginx
  3. التأكد من حالة Nginx:
    بعد التثبيت، تحقق من أن Nginx قد تم تثبيته بنجاح عن طريق التحقق من حالته:

    bash
    sudo systemctl status nginx
  4. بدء خدمة Nginx:
    إذا كانت الخدمة غير قيد التشغيل، يمكنك بدء Nginx باستخدام الأمر:

    bash
    sudo systemctl start nginx
  5. تمكين Nginx ليعمل عند بدء التشغيل:
    لجعل Nginx يعمل تلقائيًا عند تشغيل النظام، استخدم:

    bash
    sudo systemctl enable nginx

2.2 تثبيت Nginx على توزيعات CentOS/Red Hat

  1. تثبيت EPEL Repository:
    أولاً، يجب إضافة مستودع EPEL، والذي يحتوي على حزم Nginx:

    bash
    sudo yum install epel-release
  2. تثبيت Nginx:
    بعد إضافة المستودع، يمكن تثبيت Nginx باستخدام الأمر التالي:

    bash
    sudo yum install nginx
  3. بدء Nginx:
    بعد التثبيت، يمكنك بدء الخدمة باستخدام:

    bash
    sudo systemctl start nginx
  4. تمكين Nginx عند بدء التشغيل:
    لجعل Nginx يبدأ تلقائيًا عند تشغيل النظام:

    bash
    sudo systemctl enable nginx

3. ضبط إعدادات Nginx

3.1 إعدادات ملف Nginx الافتراضي

ملف الإعدادات الافتراضي في Nginx يقع في المسار التالي:

bash
/etc/nginx/nginx.conf

توجد أيضًا ملفات إعدادات أخرى مثل:

swift
/etc/nginx/sites-available/default

تسمح لك هذه الملفات بتحديد كيفية تعامل Nginx مع الطلبات. يحتوي ملف nginx.conf على العديد من الخيارات مثل تحديد المعالجات (workers) وتخصيص الخوادم الافتراضية.

  1. تعديل الإعدادات الأساسية:
    يمكنك تحرير ملف الإعدادات باستخدام أي محرر نصوص:

    bash
    sudo nano /etc/nginx/nginx.conf
  2. تعديل إعدادات المعالج:
    جزء مهم من إعدادات Nginx يتعلق بعدد المعالجات (workers) التي تستخدمها الخدمة. على سبيل المثال:

    nginx
    worker_processes 1; worker_connections 1024;

    يمكنك تعديل قيمة worker_processes لتتناسب مع قدرات الخادم.

  3. تخصيص إعدادات الخادم الافتراضي:
    في الملف default يمكنك تعديل إعدادات الخادم الافتراضي مثل إعدادات الـ server_name أو إضافة إعدادات SSL. مثال على إعداد خادم افتراضي بسيط:

    nginx
    server { listen 80; server_name your_domain.com; root /var/www/html; index index.html; }

3.2 تفعيل HTTPS باستخدام SSL

إضافة دعم HTTPS لخادم Nginx يعتبر خطوة أساسية لضمان أمان الاتصال بين العميل والخادم. يتم ذلك من خلال استخدام شهادات SSL/TLS.

  1. تثبيت Certbot للحصول على شهادة SSL مجانية:
    يمكنك استخدام Certbot للحصول على شهادة SSL مجانية من Let’s Encrypt:

    bash
    sudo apt install certbot python3-certbot-nginx
  2. استخدام Certbot لتكوين SSL:
    بعد تثبيت Certbot، يمكنك تشغيله لتثبيت الشهادة وتعديل إعدادات Nginx تلقائيًا:

    bash
    sudo certbot --nginx
  3. تجديد الشهادة:
    الشهادات من Let’s Encrypt تحتاج إلى التجديد كل 90 يومًا. يمكن جدولة تجديد تلقائي باستخدام:

    bash
    sudo certbot renew --dry-run

3.3 ضبط ملفات السجل

تسجيل الأنشطة في Nginx يُعد أمرًا أساسيًا لتحليل الأداء وحل المشكلات. يتم تحديد مكان سجل الوصول والخطأ في ملف الإعدادات nginx.conf، وعادةً ما يكون المسار الافتراضي:

lua
access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log;

4. تحسين أداء Nginx

من بين أبرز مميزات Nginx هو قدرته على تحسين الأداء في بيئات الإنتاج. هناك عدة طرق لتحسين أداء خادم Nginx:

4.1 تخزين البيانات في الذاكرة

يجب أن يتم تخزين بعض البيانات مثل استجابات الـ 404 أو الملفات الثابتة في ذاكرة الخادم لتقليل الحمل على الخادم. يمكن تفعيل التخزين المؤقت في ملف الإعدادات:

nginx
location / { try_files $uri $uri/ =404; expires 30d; }

4.2 استخدام الـ Gzip لضغط البيانات

يمكن تحسين سرعة تحميل الصفحات عن طريق تفعيل ضغط Gzip للبيانات النصية مثل HTML و CSS و JavaScript. إضافة هذه الإعدادات في nginx.conf:

nginx
gzip on; gzip_types text/plain text/css application/javascript;

4.3 استخدام التخزين المؤقت للـ Proxy

إذا كنت تستخدم Nginx كخادم وكيل عكسي (Reverse Proxy)، يمكنك تحسين الأداء باستخدام التخزين المؤقت. على سبيل المثال، إعداد التخزين المؤقت للـ Proxy:

nginx
location / { proxy_cache my_cache; proxy_pass http://backend; }

5. إدارة Nginx

5.1 إعادة تحميل الإعدادات

بعد تعديل ملفات الإعدادات، يمكنك إعادة تحميل Nginx لتطبيق التغييرات:

bash
sudo systemctl reload nginx

5.2 فحص تكوين Nginx

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

bash
sudo nginx -t

5.3 إدارة الخدمة

إدارة خدمة Nginx تتضمن عدة أوامر أساسية مثل:

  • إيقاف الخدمة:

    bash
    sudo systemctl stop nginx
  • إعادة تشغيل الخدمة:

    bash
    sudo systemctl restart nginx
  • إيقاف خدمة Nginx بشكل كامل:

    bash
    sudo systemctl disable nginx

6. الخلاصة

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