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

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 دقائق من الصفر.
ابدأ الآن
جاهز تبني مشروعك؟ اختر خادمك السحابي بالمواصفات اللي يحتاجها تطبيقك، أو راجع الباقات والأسعار.
مشاركة
