تنصيب، إعداد واستخدام Nginx كخادوم ويب
يعتبر Nginx من أشهر خوادم الويب مفتوحة المصدر التي تتميز بالكفاءة العالية في التعامل مع عدد كبير من الطلبات في وقت واحد. في هذا المقال، سوف نتناول كيفية تنصيب Nginx، إعداداته الأساسية، واستخدامه كخادم ويب موثوق به. سنقدم شرحًا مفصلًا للخطوات بدايةً من التنصيب وصولاً إلى إعداد المواقع والتخصيصات المتقدمة.
1. مقدمة عن Nginx
Nginx هو خادوم ويب قوي يستخدم على نطاق واسع في بيئات الإنتاج بفضل أدائه العالي، ومرونته، وقدرته على التعامل مع ملايين الزوار في نفس الوقت. تم تطوير Nginx في البداية كخادوم ويب يدعم تقنيات موازنة التحميل والتوجيه العكسي (reverse proxy)، لكنه سرعان ما أصبح الخيار الأول للعديد من المطورين والمشرفين على الخوادم بفضل ميزاته المدهشة.
يعتبر Nginx خادماً خفيف الوزن وفعالاً، فهو يستهلك موارد نظام أقل مقارنة مع خوادم ويب أخرى مثل Apache. يتميز بسرعة استجابته العالية، ودعمه للعديد من البروتوكولات مثل HTTP وHTTPS وWebSocket.
2. متطلبات النظام
قبل أن تبدأ في تثبيت Nginx، يجب التأكد من أن النظام لديك يلبي المتطلبات الأساسية التالية:
-
نظام تشغيل: Nginx يعمل على أنظمة Linux وUnix وWindows. لكن يوصى باستخدامه على توزيعات لينكس مثل أوبونتو و ديبيان.
-
الذاكرة: 512 ميجابايت من الذاكرة العشوائية (RAM) كحد أدنى.
-
التخزين: مساحة تخزين 10 جيجابايت أو أكثر للتثبيت وحفظ الملفات.
-
الوصول إلى الإنترنت: من الضروري تنزيل الحزم من الإنترنت أثناء التثبيت.
3. تنصيب Nginx
3.1 على نظام Ubuntu/Debian
لتنصيب Nginx على نظام Ubuntu أو Debian، يمكن اتباع الخطوات التالية:
-
تحديث قائمة الحزم:
أولاً، يجب تحديث قائمة الحزم المتاحة لتضمين أحدث الإصدارات من Nginx.bashsudo apt update -
تثبيت Nginx:
بعد تحديث الحزم، يمكنك تثبيت Nginx باستخدام الأمر التالي:bashsudo apt install nginx -
التحقق من التثبيت:
بعد إتمام عملية التثبيت، يمكن التأكد من أن Nginx تم تثبيته بنجاح عن طريق التحقق من حالته باستخدام الأمر:bashsudo systemctl status nginxستظهر لك رسالة تفيد أن الخدمة تعمل بشكل جيد. يمكنك أيضًا فتح متصفح الويب الخاص بك والذهاب إلى عنوان IP الخاص بالخادم أو localhost. إذا كان كل شيء على ما يرام، سترى صفحة الترحيب الخاصة بـ Nginx.
3.2 على نظام CentOS/RHEL
إذا كنت تستخدم نظام CentOS أو RHEL، يمكن تثبيت Nginx كالتالي:
-
تثبيت مستودع EPEL:
bashsudo yum install epel-release -
تثبيت Nginx:
bashsudo yum install nginx -
تشغيل الخدمة:
bashsudo systemctl start nginx -
تمكين Nginx للعمل عند بدء التشغيل:
bashsudo systemctl enable nginx -
التحقق من التثبيت:
نفس الطريقة كما في Ubuntu يمكن استخدامها للتحقق من حالة الخدمة.
4. إعداد Nginx
بعد تنصيب Nginx بنجاح، تأتي خطوة إعداد الخادم ليصبح جاهزًا لاستضافة المواقع.
4.1 هيكل المجلدات
يتم تخزين ملفات تكوين Nginx في مجلد /etc/nginx. بالإضافة إلى ذلك، يتم تخزين ملفات المواقع في /var/www/html.
-
ملفات التكوين:
-
nginx.conf: يحتوي على الإعدادات العامة لـ Nginx.
-
sites-available و sites-enabled: هذه المجلدات تتعامل مع إعدادات المواقع التي يمكن تفعيلها أو تعطيلها.
-
4.2 إعداد الموقع الافتراضي
عند تثبيت Nginx، يتم إعداد موقع افتراضي. يمكن تعديل هذا الموقع وفقًا لاحتياجاتك.
-
اذهب إلى مجلد إعدادات المواقع:
bashcd /etc/nginx/sites-available -
افتح الملف الافتراضي باستخدام محرر النصوص:
bashsudo nano default -
يمكنك تعديل هذا الملف ليحتوي على إعدادات الموقع الخاص بك، مثل تغيير root إلى المسار الذي يحتوي على ملفات الموقع، وتحديد server_name إلى اسم النطاق الذي تريد استخدامه.
4.3 تمكين الموقع
بعد تعديل ملف التكوين، يجب تمكينه عن طريق إنشاء رابط رمزي في مجلد sites-enabled:
bashsudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
ثم قم بإعادة تحميل Nginx لتطبيق التغييرات:
bashsudo systemctl reload nginx
5. استخدام Nginx كخادم عكسي (Reverse Proxy)
يُستخدم Nginx بشكل شائع كخادم عكسي لتحسين أداء الخوادم عبر توزيع الحمل على عدة خوادم خلفية. لتكوين Nginx كخادم عكسي:
-
افتح ملف إعدادات الموقع:
bashsudo nano /etc/nginx/sites-available/default -
قم بتعديل إعدادات location لتوجيه الطلبات إلى الخوادم الخلفية:
nginxserver { listen 80; server_name example.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } -
بعد حفظ التغييرات، قم بإعادة تحميل Nginx:
bashsudo systemctl reload nginx
6. تفعيل HTTPS باستخدام Let’s Encrypt
يعد تأمين الاتصال باستخدام HTTPS خطوة ضرورية للحفاظ على خصوصية المستخدمين. يمكنك استخدام Let’s Encrypt للحصول على شهادات SSL مجانية.
6.1 تثبيت Certbot
لتثبيت Certbot (أداة Let’s Encrypt لتوليد الشهادات) على Ubuntu:
bashsudo apt install certbot python3-certbot-nginx
6.2 الحصول على شهادة SSL
بعد تثبيت Certbot، يمكنك الحصول على شهادة SSL باستخدام الأمر التالي:
bashsudo certbot --nginx -d example.com
يتعين عليك استبدال example.com باسم النطاق الخاص بك. سيقوم Certbot بتكوين Nginx تلقائيًا لاستخدام HTTPS.
6.3 تجديد الشهادات
تجديد الشهادات يتم تلقائيًا، ولكن يمكنك اختبار التجديد يدويًا باستخدام الأمر:
bashsudo certbot renew --dry-run
7. تحسين أداء Nginx
7.1 تمكين الضغط (Gzip)
يمكنك تمكين ضغط Gzip لتسريع تحميل الصفحات وتقليل حجم البيانات المنقولة عبر الشبكة. لتمكين Gzip، افتح ملف التكوين nginx.conf وأضف ما يلي:
nginxgzip on;
gzip_types text/plain text/css application/javascript;
gzip_min_length 1000;
7.2 إعدادات التخزين المؤقت
لتسريع تحميل المحتوى الثابت مثل الصور والملفات الأخرى، يمكنك استخدام التخزين المؤقت (caching). لتفعيل التخزين المؤقت، افتح ملف التكوين وأضف هذه الإعدادات:
nginxlocation ~* \.(jpg|jpeg|png|gif|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
7.3 تقليل عدد العمليات
تعد ضبط عدد العمليات والعمال من الخيارات المهمة في تحسين أداء الخادم. يمكن تحديدها في ملف nginx.conf كما يلي:
nginxworker_processes auto;
worker_connections 1024;
8. مراقبة Nginx
لمراقبة أداء Nginx، يمكنك استخدام أدوات مثل htop و netstat لمراقبة العمليات، أو يمكنك استخدام الأدوات المتخصصة في مراقبة أداء الخوادم مثل New Relic و Datadog.
9. الاستنتاج
Nginx هو خادم ويب مرن وفعال يمكن استخدامه في مجموعة متنوعة من السيناريوهات من بينها استضافة المواقع البسيطة إلى إعدادات الخوادم العكسية (Reverse Proxy) والتوزيع المتوازن للحمل. بفضل كفاءته العالية في التعامل مع حركة مرور الشبكة، يعد Nginx الخيار الأمثل للعديد

