Web Server Setup في Linux: تثبيت Nginx وتفعيل موقعك
بعد إتقان أساسيات الشبكة والحماية، يمكنك الآن تشغيل موقع حقيقي على Linux.
في هذا الدرس ستتعلم إعداد Nginx Web Server من الصفر مع خطوات تحقق وتشخيص.
ما هو Web Server في Linux؟
- يستقبل طلبات HTTP/HTTPS من المتصفح
- يخدم ملفات ثابتة (HTML/CSS/JS) أو يمرر الطلبات للتطبيق
- يدير Virtual Hosts (عدة مواقع على نفس الخادم)
تثبيت Nginx على Ubuntu/Debian
sudo apt update
sudo apt install -y nginx
بعد التثبيت، تأكد من الحالة:
systemctl status nginx
sudo systemctl enable nginx
فتح منافذ الويب في Firewall
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status
إذا كان UFW مفعلًا، هذه الخطوة ضرورية للوصول من خارج الخادم.
هيكلة ملفات Nginx الأساسية
/etc/nginx/nginx.conf: الإعداد العام/etc/nginx/sites-available/: ملفات المواقع/etc/nginx/sites-enabled/: المواقع المفعّلة/var/www/html: الجذر الافتراضي للموقع
إنشاء موقع بسيط (Server Block)
أنشئ ملفات الموقع:
sudo mkdir -p /var/www/myapp
echo "<h1>Hello from Nginx</h1>" | sudo tee /var/www/myapp/index.html
أنشئ ملف إعداد للموقع:
sudo nano /etc/nginx/sites-available/myapp
server {
listen 80;
server_name myapp.local;
root /var/www/myapp;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
تفعيل الموقع والتحقق من الإعداد
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
| الأمر | الهدف |
|---|---|
nginx -t |
فحص صحة إعدادات Nginx |
systemctl reload nginx |
إعادة تحميل الإعدادات بدون restart كامل |
اختبار الموقع محليًا ومن الشبكة
curl -I http://localhost
curl -I http://SERVER_IP
ss -tulpn | grep :80
إذا الاستجابة HTTP/1.1 200 OK فالإعداد الأساسي يعمل.
تشخيص المشاكل الشائعة (403/404/502)
- 403: غالبا صلاحيات أو root غير صحيح
- 404: الملف غير موجود أو server block خاطئ
- 502: مشكلة upstream (تطبيق backend متوقف)
أوامر التشخيص:
sudo nginx -t
sudo journalctl -u nginx -n 50
sudo tail -f /var/log/nginx/error.log
ملاحظة سريعة عن Apache
Apache خيار قوي أيضًا، لكن في هذا المسار نركز على Nginx لأنه شائع جدًا في الخوادم الحديثة.
تمرين عملي: نشر صفحة HTML على Nginx
sudo mkdir -p /var/www/lab
echo "<h1>Linux Web Server Lab</h1>" | sudo tee /var/www/lab/index.html
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/lab
# عدّل root داخل ملف lab إلى /var/www/lab
sudo nginx -t
sudo systemctl reload nginx
curl http://localhost
إذا ظهر عنوان الصفحة في نتيجة curl، فقد نشرت أول موقعك بنجاح.
FAQ: أسئلة شائعة حول إعداد Web Server في Linux
ما هو Web Server في Linux؟
هو خدمة تستقبل طلبات HTTP/HTTPS وتعرض صفحات الموقع أو تمررها للتطبيقات الخلفية مثل PHP أو Node.js.
هل أبدأ بـ Nginx أم Apache؟
للمبتدئين في هذا المسار، Nginx خيار ممتاز لأنه شائع في الإنتاج وسهل في الإعداد الأساسي.
لماذا أرى خطأ 403 أو 404 بعد إعداد الموقع؟
غالبا بسبب مسار root خاطئ، أو صلاحيات ملفات غير صحيحة، أو إعداد server block غير مطابق للدومين.