كلاود
أدلة

Caddy Server: البديل الأسهل لـ Nginx

كلاود|٢٢ أبريل ٢٠٢٦|3 دقائق قراءة|٢٤٨ مشاهدة
Caddy Server: البديل الأسهل لـ Nginx

SSL تلقائي، HTTP/3، Caddyfile بسيط — Caddy يبسّط إعداد السيرفر. نقارن مع Nginx — ومتى يكون أفضل.

Caddy: بديل Nginx الحديث

Caddy web server ظهر كبديل جاد لـ Nginx وApache. ميزته الأبرز: HTTPS تلقائي بدون أي إعداد إضافي. هل يستحق التبديل؟ هذا المقال يجيب بأمثلة عملية.

لماذا Caddy؟

HTTPS التلقائي

هذه أبرز ميزة. Caddy يحصل على شهادات Let's Encrypt ويجددها تلقائياً بدون أي كود إضافي.

Nginx للوصول لـ HTTPS:
1. تثبيت Certbot
2. تشغيل certbot --nginx
3. إعداد cron للتجديد
4. تعديل nginx.conf يدوياً للـ SSL

Caddy للوصول لـ HTTPS:
1. اكتب domain:
 example.com {
 reverse_proxy localhost:3000
 }
2. شغّله — HTTPS يعمل تلقائياً

Caddyfile: أبسط من nginx.conf

# nginx.conf للـ reverse proxy بسيط:
server {
 listen 80;
 server_name example.com;
 return 301 https://$host$request_uri;
}

server {
 listen 443 ssl http2;
 server_name example.com;
 
 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
 
 location / {
 proxy_pass http://localhost: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;
 }
}
# Caddyfile المكافئ (4 أسطر فقط):
example.com {
 reverse_proxy localhost:3000
}

Caddy يفعل كل ما فعله nginx.conf أعلاه تلقائياً: HTTPS، HTTP→HTTPS redirect، الـ headers الصحيحة.

التثبيت

# Ubuntu/Debian
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | \
 gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | \
 tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy

# التحقق
caddy version
caddy --version

أمثلة Caddyfile متقدمة

نشر Laravel

# /etc/caddy/Caddyfile
yourlaravel.com {
 root * /var/www/laravel/public
 
 php_fastcgi unix//run/php/php8.3-fpm.sock
 
 file_server
 
 encode gzip
 
 # Headers أمنية
 header {
 X-Content-Type-Options nosniff
 X-Frame-Options DENY
 Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
 -Server # إخفاء معلومات السيرفر
 }
 
 log {
 output file /var/log/caddy/laravel.log
 format json
 }
}

Load Balancing

api.yourapp.com {
 reverse_proxy {
 to localhost:3001 localhost:3002 localhost:3003
 
 lb_policy round_robin
 
 # Health checks
 health_uri /health
 health_interval 30s
 health_timeout 10s
 }
}

Static Files مع Caching

cdn.yourapp.com {
 root * /var/www/static
 file_server
 
 @static {
 path *.css *.js *.png *.jpg *.webp *.woff2
 }
 
 header @static Cache-Control "public, max-age=31536000, immutable"
 
 encode gzip zstd
}

Multiple Sites على نفس السيرفر

app1.com {
 reverse_proxy localhost:3001
}

app2.com {
 reverse_proxy localhost:3002
}

api.shared.com {
 reverse_proxy {
 to localhost:4001 localhost:4002
 lb_policy least_conn
 }
}

# كل موقع يحصل على HTTPS تلقائياً!

Caddy API: إدارة ديناميكية

# تحديث الإعدادات بدون إعادة تشغيل
curl localhost:2019/load \
 -H "Content-Type: text/caddyfile" \
 --data-binary @/etc/caddy/Caddyfile

# إضافة site جديد ديناميكياً (JSON API)
curl -X POST localhost:2019/config/apps/http/servers/srv0/routes \
 -H "Content-Type: application/json" \
 -d '{
 "match": [{"host": ["newsite.com"]}],
 "handle": [{"handler": "reverse_proxy", "upstreams": [{"dial": "localhost:5000"}]}]
 }'

Nginx مقابل Caddy: متى تختار أيهما؟

المعيار Nginx Caddy
الأداء أسرع بنسبة 10-15% ممتاز (فرق غير محسوس)
HTTPS تلقائي لا نعم
سهولة الإعداد معقد بسيط جداً
ذاكرة RAM أقل استهلاكاً أعلى قليلاً
المجتمع والوثائق ضخم جيد وينمو
HTTP/3 (QUIC) يحتاج إضافات مدمج

اختر Nginx إذا:

  • تحتاج أداء عالياً في سيرفرات مرهقة (100K+ req/s)
  • لديك خبرة بـ Nginx وتريد الاستمرار
  • تحتاج ميزات متقدمة وغير رسمية

اختر Caddy إذا:

  • تريد HTTPS بدون تعقيد
  • تدير مواقع متعددة
  • تبني بنية تحتية حديثة من الصفر

الخلاصة

Caddy يحل المشكلة الأكثر شيوعاً في إدارة السيرفرات: HTTPS ونسيان تجديد الشهادات. على سيرفرات كلاود (cloud.net.sa)، يمكنك تثبيت Caddy وتشغيل موقع بـ HTTPS خلال 5 دقائق من الصفر.


ابدأ الآن

جاهز تبني مشروعك؟ اختر خادمك السحابي بالمواصفات اللي يحتاجها تطبيقك، أو راجع الباقات والأسعار.

مشاركة