تثبيت وضبط خادم Nginx: دليل مفصل
في عالم إدارة الخوادم، يعد Nginx أحد أكثر الخوادم شهرة في الوقت الحاضر. يتميز Nginx بقدراته العالية على التعامل مع عدد كبير من الزوار، ويُستخدم على نطاق واسع كخادم ويب أو كعكاز للتوجيه العكسي (Reverse Proxy) أو خادم بريد إلكتروني. سنقوم في هذا المقال بشرح كيفية تثبيت وضبط خادم Nginx بشكل مفصل، متناولين جميع الخطوات اللازمة لإعداده بشكل مناسب على أنظمة تشغيل مختلفة مثل Linux.
1. مقدمة عن Nginx
Nginx هو خادم ويب مفتوح المصدر يتميز بقدرته على التعامل مع العديد من الاتصالات في نفس الوقت بفضل هيكلية غير متزامنة تعتمد على الأحداث. هذا يجعله مثاليًا لمواقع الإنترنت ذات الحركة الكثيفة والتي تتطلب استجابة سريعة. بخلاف Apache، الذي يعتمد على عمليات متعددة لإدارة طلبات المستخدمين، يركز Nginx على استخدام عملية واحدة للتعامل مع الكثير من الطلبات في الوقت ذاته.
يعتبر Nginx أيضًا خادمًا عالي الأداء ومثاليًا للعمل في بيئات تطبيقات الويب الحديثة. كما يتميز بقدرته على العمل كـ Load Balancer أو كـ Proxy مع مرونة عالية، بالإضافة إلى تقديم مستويات أمان متقدمة.
2. خطوات تثبيت Nginx على خادم Linux
2.1 تثبيت Nginx على توزيعات Debian/Ubuntu
-
تحديث النظام:
قبل البدء في التثبيت، من المهم تحديث جميع حزم النظام لضمان تثبيت أحدث الإصدارات المتوافقة:bashsudo apt update sudo apt upgrade -
تثبيت Nginx:
بعد تحديث النظام، يمكن تثبيت Nginx بسهولة باستخدام مدير الحزم APT:bashsudo apt install nginx -
التأكد من حالة Nginx:
بعد التثبيت، تحقق من أن Nginx قد تم تثبيته بنجاح عن طريق التحقق من حالته:bashsudo systemctl status nginx -
بدء خدمة Nginx:
إذا كانت الخدمة غير قيد التشغيل، يمكنك بدء Nginx باستخدام الأمر:bashsudo systemctl start nginx -
تمكين Nginx ليعمل عند بدء التشغيل:
لجعل Nginx يعمل تلقائيًا عند تشغيل النظام، استخدم:bashsudo systemctl enable nginx
2.2 تثبيت Nginx على توزيعات CentOS/Red Hat
-
تثبيت EPEL Repository:
أولاً، يجب إضافة مستودع EPEL، والذي يحتوي على حزم Nginx:bashsudo yum install epel-release -
تثبيت Nginx:
بعد إضافة المستودع، يمكن تثبيت Nginx باستخدام الأمر التالي:bashsudo yum install nginx -
بدء Nginx:
بعد التثبيت، يمكنك بدء الخدمة باستخدام:bashsudo systemctl start nginx -
تمكين Nginx عند بدء التشغيل:
لجعل Nginx يبدأ تلقائيًا عند تشغيل النظام:bashsudo systemctl enable nginx
3. ضبط إعدادات Nginx
3.1 إعدادات ملف Nginx الافتراضي
ملف الإعدادات الافتراضي في Nginx يقع في المسار التالي:
bash/etc/nginx/nginx.conf
توجد أيضًا ملفات إعدادات أخرى مثل:
swift/etc/nginx/sites-available/default
تسمح لك هذه الملفات بتحديد كيفية تعامل Nginx مع الطلبات. يحتوي ملف nginx.conf على العديد من الخيارات مثل تحديد المعالجات (workers) وتخصيص الخوادم الافتراضية.
-
تعديل الإعدادات الأساسية:
يمكنك تحرير ملف الإعدادات باستخدام أي محرر نصوص:bashsudo nano /etc/nginx/nginx.conf -
تعديل إعدادات المعالج:
جزء مهم من إعدادات Nginx يتعلق بعدد المعالجات (workers) التي تستخدمها الخدمة. على سبيل المثال:nginxworker_processes 1; worker_connections 1024;يمكنك تعديل قيمة
worker_processesلتتناسب مع قدرات الخادم. -
تخصيص إعدادات الخادم الافتراضي:
في الملفdefaultيمكنك تعديل إعدادات الخادم الافتراضي مثل إعدادات الـ server_name أو إضافة إعدادات SSL. مثال على إعداد خادم افتراضي بسيط:nginxserver { listen 80; server_name your_domain.com; root /var/www/html; index index.html; }
3.2 تفعيل HTTPS باستخدام SSL
إضافة دعم HTTPS لخادم Nginx يعتبر خطوة أساسية لضمان أمان الاتصال بين العميل والخادم. يتم ذلك من خلال استخدام شهادات SSL/TLS.
-
تثبيت Certbot للحصول على شهادة SSL مجانية:
يمكنك استخدام Certbot للحصول على شهادة SSL مجانية من Let’s Encrypt:bashsudo apt install certbot python3-certbot-nginx -
استخدام Certbot لتكوين SSL:
بعد تثبيت Certbot، يمكنك تشغيله لتثبيت الشهادة وتعديل إعدادات Nginx تلقائيًا:bashsudo certbot --nginx -
تجديد الشهادة:
الشهادات من Let’s Encrypt تحتاج إلى التجديد كل 90 يومًا. يمكن جدولة تجديد تلقائي باستخدام:bashsudo certbot renew --dry-run
3.3 ضبط ملفات السجل
تسجيل الأنشطة في Nginx يُعد أمرًا أساسيًا لتحليل الأداء وحل المشكلات. يتم تحديد مكان سجل الوصول والخطأ في ملف الإعدادات nginx.conf، وعادةً ما يكون المسار الافتراضي:
luaaccess_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
4. تحسين أداء Nginx
من بين أبرز مميزات Nginx هو قدرته على تحسين الأداء في بيئات الإنتاج. هناك عدة طرق لتحسين أداء خادم Nginx:
4.1 تخزين البيانات في الذاكرة
يجب أن يتم تخزين بعض البيانات مثل استجابات الـ 404 أو الملفات الثابتة في ذاكرة الخادم لتقليل الحمل على الخادم. يمكن تفعيل التخزين المؤقت في ملف الإعدادات:
nginxlocation / {
try_files $uri $uri/ =404;
expires 30d;
}
4.2 استخدام الـ Gzip لضغط البيانات
يمكن تحسين سرعة تحميل الصفحات عن طريق تفعيل ضغط Gzip للبيانات النصية مثل HTML و CSS و JavaScript. إضافة هذه الإعدادات في nginx.conf:
nginxgzip on;
gzip_types text/plain text/css application/javascript;
4.3 استخدام التخزين المؤقت للـ Proxy
إذا كنت تستخدم Nginx كخادم وكيل عكسي (Reverse Proxy)، يمكنك تحسين الأداء باستخدام التخزين المؤقت. على سبيل المثال، إعداد التخزين المؤقت للـ Proxy:
nginxlocation / {
proxy_cache my_cache;
proxy_pass http://backend;
}
5. إدارة Nginx
5.1 إعادة تحميل الإعدادات
بعد تعديل ملفات الإعدادات، يمكنك إعادة تحميل Nginx لتطبيق التغييرات:
bashsudo systemctl reload nginx
5.2 فحص تكوين Nginx
قبل إعادة تشغيل Nginx، يفضل دائمًا فحص التكوين للتأكد من عدم وجود أخطاء:
bashsudo nginx -t
5.3 إدارة الخدمة
إدارة خدمة Nginx تتضمن عدة أوامر أساسية مثل:
-
إيقاف الخدمة:
bashsudo systemctl stop nginx -
إعادة تشغيل الخدمة:
bashsudo systemctl restart nginx -
إيقاف خدمة Nginx بشكل كامل:
bashsudo systemctl disable nginx
6. الخلاصة
يعد تثبيت وضبط خادم Nginx خطوة أساسية لأي شخص يخطط لاستضافة مواقع الإنترنت عالية الحركة أو يحتاج إلى خادم ويب فعال وآمن. من خلال اتباع الخطوات المذكورة أعلاه، يمكنك إعداد خادم Nginx، تخصيص الإعدادات وفقًا لاحتياجاتك، وتحسين الأداء والأمان لضمان استقرار الموقع.

