Nginx: من الصفر إلى الاحتراف
Nginx هو خادم ويب عالي الأداء، يعمل كـ Reverse Proxy، وموازن حمل. يُستخدم من قبل أكبر المواقع في العالم لسرعته واستقراره.
الجزء الأول: مقدمة عن Nginx
يتميز Nginx ببنية غير متزامنة تعتمد على الأحداث.
💡 خلاصة:
- ✅ Nginx سريع ومستقر.
🚀 الجزء الثاني: التثبيت
sudo apt update
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx📂 الجزء الثالث: إعداد المواقع
server {
listen 80;
server_name mywebsite.com www.mywebsite.com;
root /var/www/mywebsite;
index index.html;
location / {
try_files URI_PATH URI_PATH/ =404;
}
}🔄 الجزء الرابع: الوكيل العكسي
server {
listen 80;
server_name app.mywebsite.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade HTTP_UPGRADE_VAR;
proxy_set_header Connection upgrade;
proxy_set_header Host HOST_NAME_VAR;
}
}🔒 الجزء الخامس: SSL/HTTPS
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d mywebsite.com -d www.mywebsite.com🛡️ الجزء السادس: الأمان
server_tokens off;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
client_max_body_size 10M;⚡ الجزء السابع: الأداء
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml;⚖️ الجزء الثامن: موازنة الحمل
upstream backend_pool {
least_conn;
server 10.0.0.10;
server 10.0.0.11;
server 10.0.0.12 backup;
}
server {
listen 80;
server_name app.mywebsite.com;
location / {
proxy_pass http://backend_pool;
}
}📊 الجزء التاسع: السجلات
# عرض السجلات مباشرة
tail -f /var/log/nginx/access.log
# عرض آخر 50 خطأ
tail -n 50 /var/log/nginx/error.log
# أكثر عناوين IP زيارة
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head🔧 الجزء العاشر: استكشاف الأخطاء
# التحقق من صحة الإعدادات
sudo nginx -t
# زيادة حجم الملفات المرفوعة (حل خطأ 413)
client_max_body_size 50M;
# إعادة التشغيل الآمن
sudo systemctl reload nginx📋 الجزء الحادي عشر: الملخص السريع
جدول مرجعي سريع لأهم الأوامر والتوجيهات:
| الأمر / التوجيه | الوظيفة |
|---|---|
| sudo nginx -t | التحقق من صحة الإعدادات |
| server_name | اسم النطاق (Domain) |
| root | المسار الرئيسي للموقع |
| proxy_pass | توجيه الطلبات للخادم الداخلي |
| gzip on; | تفعيل ضغط البيانات |
أهم أوامر التحكم بالخدمة:
sudo nginx -t # التحقق من الإعدادات
sudo systemctl restart nginx # إعادة التشغيل
sudo systemctl reload nginx # إعادة تحميل التعديلات
nginx -v # عرض الإصدار
ls /etc/nginx/sites-enabled/ # عرض المواقع المفعلة 🎉 مبارك!
أصبحت الآن قادراً على إدارة خادم Nginx باحترافية عالية.