[{"data":1,"prerenderedAt":206},["ShallowReactive",2],{"seo-verification":3,"blog-caddy-أم-traefik-أم-nginx-proxy-manager-أيهما-تختار-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":23,"featuredImage":25,"bgImage":26,"posterImage":27,"relatedSolution":25,"intro":28,"sections":29,"ctaTitle":155,"ctaBody":156,"ctaButton":157,"ctaUrl":158,"relatedPosts":159},227,"caddy-أم-traefik-أم-nginx-proxy-manager-أيهما-تختار",{"fr":10,"en":11,"ar":8},"choisir-reverse-proxy-vps-caddy-traefik-nginx","caddy-traefik-or-nginx-proxy-manager-which-to-choose","‏Caddy أم Traefik أم Nginx Proxy Manager: أيهما تختار؟","دليل المقارنة بين ‏Caddy و‏Traefik و‏Nginx Proxy Manager لاختيار بروكسي عكسي لـ‏Docker على خادم VPS. معايير وجدول مقارنة وتوصيات حسب الملف الشخصي.",10,0,false,"2026-08-06T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},5,"مقارنات","comparatif","bg-info\u002F10 text-info",[24],{"id":19,"name":20,"slug":21,"color":22,"icon":21},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fchoisir-reverse-proxy-vps-caddy-traefik-nginx-poster.svg","تستضيف عدة تطبيقات ‏Docker على خادم ‏VPS وتحتاج إلى عرض كل منها عبر ‏HTTPS باسم نطاق مستقل. البروكسي العكسي هو القطعة المحورية في هذه البنية: يستقبل كل حركة المرور الواردة على المنفذين 80 و443، ويدير شهادات ‏TLS ويوجّه الطلبات إلى الحاوية المناسبة. ‏Caddy و‏Traefik و‏Nginx Proxy Manager هي الحلول الثلاثة الأكثر شعبية — هذا الدليل يساعدك على اختيار ما يناسب ملفك الشخصي.",[30,34,43,46,92,95,117,120,135,138,141,144,152],{"type":31,"title":32,"body":33},"h2","لماذا البروكسي العكسي ضروري مع ‏Docker","بشكل افتراضي، تستمع كل حاوية ‏Docker على منفذ عشوائي: ‏Nextcloud على المنفذ 8080، و‏Gitea على المنفذ 3000، و‏Vaultwarden على المنفذ 8200. لا يمكنك عرض عشرة منافذ مباشرةً في بيئة الإنتاج. يحل البروكسي العكسي هذه المشاكل الثلاث دفعةً واحدة: يصبح نقطة الدخول العامة الوحيدة، ويوجّه حركة المرور بناءً على اسم المضيف، ويتولى إنهاء ‏TLS. النتيجة: ‏`app1.your-domain.com` و‏`app2.your-domain.com` تشيران كلتاهما إلى المنفذ 443 لخادمك، والبروكسي يعرف إلى أي حاوية يُعيد توجيه كل طلب.",{"type":35,"title":36,"items":37},"ul","ما يمنحك إياه البروكسي العكسي عملياً",[38,39,40,41,42],"**إنهاء ‏TLS مركزي** — أداة واحدة تحصل على شهادات ‏Let's Encrypt وتجدّدها لجميع نطاقاتك تلقائياً دون أي خطوات يدوية","**توجيه حسب اسم المضيف** — ‏`git.your-domain.com` يذهب إلى ‏Gitea، و‏`cloud.your-domain.com` يذهب إلى ‏Nextcloud دون أي تعارض في المنافذ","**جدار حماية مُبسَّط** — المنفذان 80 و443 فقط مفتوحان للعموم، وجميع منافذ ‏Docker الداخلية تبقى غير متاحة من الخارج","**إعادة توجيه ‏HTTP إلى ‏HTTPS تلقائياً** — يُعاد توجيه كل حركة المرور غير المشفرة بـ 301 دون إعداد يدوي داخل كل تطبيق","**مراقبة مركزية** — سجلات الوصول والأخطاء لجميع تطبيقاتك مجمّعة في مكان واحد لتسهيل تشخيص المشكلات",{"type":31,"title":44,"body":45},"المتطلبات المشتركة للحلول الثلاثة","قبل اختيار أحد هذه البروكسيات الثلاثة وتثبيته، تأكد من أن خادم ‏VPS الخاص بك يستوفي بعض المتطلبات الأساسية. يجب تثبيت ‏Docker و‏Docker Compose. يجب أن تشير سجلات ‏DNS الخاصة بك إلى ‏IP العامة لخادمك قبل طلب الشهادة. يجب أن تكون المنفذان 80 و443 خاليَين: تحقق بـ ‏`ss -tlnp | grep -E ':80|:443'`. أخيراً، أنشئ شبكة ‏Docker مخصصة للبروكسي — ‏`docker network create proxy`.",{"type":47,"title":48,"headers":49,"rows":54},"comparison","جدول المقارنة: ‏Caddy مقابل ‏Traefik مقابل ‏Nginx Proxy Manager",[50,51,52,53],"المعيار","‏Caddy","‏Traefik","‏Nginx Proxy Manager",[55,59,64,69,74,77,82,87],[56,57,58,57],"سهولة الإعداد","⭐⭐⭐⭐⭐ بسيط جداً","⭐⭐⭐ متوسط",[60,61,62,63],"‎TLS تلقائي (Let's Encrypt)","✅ أصيل، بدون إعداد","✅ عبر ‎ACME","✅ عبر الواجهة الرسومية",[65,66,67,68],"تكامل ‎Docker","يدوي (وسوم أو إعداد)","✅ وسوم أصيلة","✅ عبر ‎GUI",[70,71,72,73],"طريقة الإعداد","ملف ‎Caddyfile مقروء","وسوم ‎Docker + ‎YAML","واجهة رسومية",[75,76,76,76],"إعادة التحميل بدون انقطاع","✅ تلقائي",[78,79,80,81],"لوحة تحكم\u002Fواجهة ويب","❌ لا","✅ لوحة تحكم مدمجة","✅ واجهة كاملة",[83,84,85,86],"استهلاك الذاكرة","~30 ميغابايت","~50 ميغابايت","~100 ميغابايت (MariaDB مشمولة)",[88,89,90,91],"الأنسب لـ","مشاريع فردية\u002Fفرق صغيرة","الخدمات المصغرة، ‎CI\u002FCD","المبتدئون، الفرق المختلطة",{"type":31,"title":93,"body":94},"‏Caddy: الخيار الافتراضي لمعظم الحالات","رسّخ ‏Caddy نفسه بوصفه الخيار الأبسط للمطورين الذين يستضيفون بين اثنين وعشرة تطبيقات على خادم ‏VPS. فلسفته جذرية: ‏TLS مفعَّل بشكل افتراضي لأي نطاق صالح، دون أي خيار لتفعيله. ملف الإعداد ‏`Caddyfile` مصمم ليكون مقروءاً، قريباً من اللغة الطبيعية. ‏Caddy مكتوب بـ ‏Go ويضم عميل ‏ACME الخاص به: يتصل بـ ‏Let's Encrypt مباشرةً ويخزّن الشهادات في دليل بياناته ويجدّدها تلقائياً قبل انتهاء صلاحيتها. استهلاك الذاكرة يبقى حوالي 30 ميغابايت في وضع الراحة.",{"type":96,"title":97,"steps":98},"steps","نشر ‏Caddy كبروكسي عكسي لـ ‏Docker",[99,102,105,108,111,114],{"title":100,"body":101},"إنشاء شبكة ‏Docker المشتركة","أولاً، أنشئ الشبكة التي ستشترك فيها ‏Caddy وتطبيقاتك: ‏`docker network create proxy`. تتيح هذه الشبكة المعزولة لـ ‏Caddy الوصول إلى حاوياتك بالاسم دون كشف منافذها على المضيف.",{"title":103,"body":104},"كتابة ملف ‏Caddyfile","أنشئ ملف ‏`Caddyfile` في جذر مشروعك. لعرض تطبيق على ‏`app.your-domain.com` إلى حاوية باسم ‏`myapp` تستمع على المنفذ 3000: ‏`app.your-domain.com { reverse_proxy myapp:3000 }`. يحصل ‏Caddy على الشهادة تلقائياً عند أول تشغيل.",{"title":106,"body":107},"كتابة ملف ‏docker-compose.yml لـ ‏Caddy","أنشئ ‏`docker-compose.yml` مع خدمة ‏Caddy: ارفع ‏`Caddyfile` للقراءة فقط، احفظ بيانات ‏TLS في حجم مسمى، انشر المنفذين 80 و443، وأضف ‏Caddy إلى شبكة ‏`proxy` المُعلَنة خارجية.",{"title":109,"body":110},"ربط تطبيقاتك بشبكة البروكسي","في ملف ‏`docker-compose.yml` لكل تطبيق، أضف شبكة ‏`proxy` كشبكة خارجية وتوقف عن كشف المنافذ على المضيف (استخدم ‏`expose` بدلاً من ‏`ports`).",{"title":112,"body":113},"التشغيل والتحقق","شغّل ‏Caddy بـ ‏`docker compose up -d`، ثم تابع السجلات بـ ‏`docker compose logs -f caddy`. يجب أن ترى ‏`certificate obtained successfully` لكل نطاق. اختبر بـ ‏`curl -I https:\u002F\u002Fapp.your-domain.com`.",{"title":115,"body":116},"إضافة تطبيق جديد","لكل تطبيق جديد، أضف كتلة في ‏`Caddyfile`، أعد تحميل ‏Caddy بدون انقطاع بـ ‏`docker exec caddy caddy reload --config \u002Fetc\u002Fcaddy\u002FCaddyfile`، وأضف الحاوية الجديدة إلى شبكة ‏`proxy`.",{"type":31,"title":118,"body":119},"‏Traefik: متى تختار الاكتشاف التلقائي للخدمات","يتألق ‏Traefik في السياقات التي يتغير فيها عدد الخدمات بشكل متكرر: بيئات ‏CI\u002FCD التي تنشئ الحاويات وتدمرها مع كل نشر، ومعماريات الخدمات المصغرة. آلية الاكتشاف التلقائي عبر تسميات ‏Docker هي ميزته الرئيسية: عند تشغيل حاوية بالتسميات الصحيحة، يكتشفها ‏Traefik فوراً ويُنشئ المسار ويطلب شهادة ‏TLS دون الحاجة للمساس بإعداد ‏Traefik نفسه.",{"type":96,"title":121,"steps":122},"نشر ‏Traefik مع اكتشاف ‏Docker التلقائي",[123,126,129,132],{"title":124,"body":125},"إنشاء ملف الإعداد الثابت","أنشئ ‏`traefik.yml` بنقاط الدخول، فعّل موفر ‏Docker، اضبط محلل ‏ACME بعنوان بريدك لـ ‏Let's Encrypt، وفعّل لوحة التحكم في الوضع الآمن.",{"title":127,"body":128},"تشغيل ‏Traefik مع ‏Docker Compose","في ‏`docker-compose.yml` لـ ‏Traefik، ارفع مقبس ‏Docker للقراءة فقط (‏`\u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro`)، ارفع ‏`traefik.yml`، احفظ الشهادات في حجم، وانشر المنفذين 80 و443.",{"title":130,"body":131},"إضافة التسميات إلى حاوياتك","على كل خدمة تريد عرضها، أضف تسميات ‏Traefik: ‏`traefik.enable=true`، قاعدة الموجّه، نقطة الدخول، محلل ‏TLS، ومنفذ الخدمة الداخلي.",{"title":133,"body":134},"التحقق من لوحة التحكم","ادخل إلى لوحة تحكم ‏Traefik وتحقق من أن موجّهك يظهر باللون الأخضر بحالة ‏`Enabled`. إن كان الموجّه غائباً، تحقق من وجود التسمية ‏`traefik.enable=true`.",{"type":136,"body":137},"tip","أمان حرج: لا ترفع مقبس ‏Docker (‏`\u002Fvar\u002Frun\u002Fdocker.sock`) بدون قيود في بيئة متعددة المستخدمين — أي شخص يمكنه الكتابة في هذا المقبس يمكنه السيطرة الكاملة على المضيف. في الإنتاج، فضّل ‏Traefik مع المقبس للقراءة فقط (‏`ro`) أو استخدم بروكسي مقبس مثل ‏`docker-socket-proxy`.",{"type":31,"title":139,"body":140},"‏Nginx Proxy Manager: الخيار بدون ملفات إعداد","‏Nginx Proxy Manager (‏NPM) هو الخيار الواضح لمن يشعر بعدم الارتياح تجاه ملفات الإعداد في سطر الأوامر. تتيح واجهته الرسومية إنشاء مضيف بروكسي بنقرات قليلة. في المقابل، يضم ‏NPM قاعدة بيانات ‏MariaDB لتخزين إعداداته، مما يرفع استهلاك الذاكرة إلى حوالي 100 ميغابايت — ما يقارب ثلاثة أضعاف ‏Caddy.",{"type":31,"title":142,"body":143},"استكشاف الأخطاء: الأخطاء الأكثر شيوعاً","الغالبية العظمى من المشكلات تندرج في أربع فئات. أولاً، حدود معدل ‏Let's Encrypt: استخدم بيئة التدريج للاختبار ثم انتقل للإنتاج. ثانياً، تعارض المنافذ: حدّد العملية بـ ‏`ss -tlnp | grep :80` وأوقفها. ثالثاً، أخطاء شبكة ‏Docker: تحقق بـ ‏`docker network inspect proxy`. رابعاً، لـ ‏Traefik: فعّل سجلات ‏DEBUG بـ ‏`--log.level=DEBUG`.",{"type":35,"title":145,"items":146},"ملخص: أي بروكسي لأي ملف شخصي",[147,148,149,150,151],"**مطور فردي، 2 إلى 5 تطبيقات** — ‏Caddy: إعداد بسيط، ‏TLS تلقائي، جاهز في أقل من عشر دقائق","**فريق ‏DevOps، خدمات مصغرة، ‏CI\u002FCD** — ‏Traefik: اكتشاف تلقائي عبر التسميات، لوحة مراقبة","**مستخدم غير تقني أو فريق مختلط** — ‏Nginx Proxy Manager: واجهة رسومية بديهية، لا ملفات للتحرير","**‏VPS ذو ذاكرة محدودة** — ‏Caddy أو ‏Traefik: تجنب ‏NPM الذي يضم ‏MariaDB","**انتقال تدريجي من ‏Nginx** — ‏Caddy: يمكن تعلم صيغته في ساعة",{"type":31,"title":153,"body":154},"الخلاصة: ابدأ بـ ‏Caddy وطوّر عند الحاجة","لغالبية العظمى من المضيفين الذاتيين الذين يديرون تطبيقات ‏Docker على خادم ‏VPS، يعد ‏Caddy أفضل نقطة انطلاق: بسيط وخفيف ويتحكم في ‏TLS بشكل أفضل من أي بديل دون إعداد إضافي. إذا نمت بنيتك التحتية إلى أكثر من خمس خدمات مع نشر متكرر وآلي، يصبح ‏Traefik أكثر ملاءمة.","خادمك الافتراضي جاهز لـ ‏Docker في أقل من 5 دقائق","تُسلَّم خوادم ‏ServOrbit الافتراضية مع ‏Docker مثبتاً مسبقاً، و‏IP عامة مخصصة، وشبكة بسرعة 1 جيجابت.","اكتشف خوادم ServOrbit الافتراضية","\u002Fsolutions\u002Fdeveloppeurs",[160,180,193],{"id":161,"slug":162,"slugs":163,"title":166,"excerpt":167,"readTime":168,"views":15,"isPinned":16,"publishedAt":169,"category":170,"categories":174,"featuredImage":25,"bgImage":26,"posterImage":176,"relatedSolution":177},39,"انشر-تطبيقاتك-باستخدام-caddy-على-خادم-vps",{"fr":164,"en":165,"ar":162},"deployer-avec-caddy","deploy-your-applications-with-caddy-on-a-vps","انشر تطبيقاتك باستخدام Caddy على خادم VPS","انشر Caddy على خادم VPS الخاص بك: خادم ويب ووكيل عكسي مع HTTPS تلقائي. ملف Caddyfile من بضعة أسطر يكفي للانتقال إلى الإنتاج.",3,"2026-05-12T00:00:00+00:00",{"id":168,"name":171,"slug":172,"color":173,"icon":172},"النشر","deploiement","bg-success\u002F10 text-success",[175],{"id":168,"name":171,"slug":172,"color":173,"icon":172},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caddy-poster.svg",{"categorySlug":178,"appSlug":179},"نشر-التطبيقات-وdevops","caddy",{"id":181,"slug":182,"slugs":183,"title":186,"excerpt":187,"readTime":168,"views":15,"isPinned":16,"publishedAt":188,"category":189,"categories":190,"featuredImage":25,"bgImage":26,"posterImage":192,"relatedSolution":25},38,"انشر-تطبيقاتك-باستخدام-traefik-على-خادم-vps",{"fr":184,"en":185,"ar":182},"deployer-avec-traefik","deploy-your-applications-with-traefik-on-a-vps","انشر تطبيقاتك باستخدام Traefik على خادم VPS","انشر Traefik كوكيل عكسي على خادم VPS الخاص بك: توجيه تلقائي لحاويات Docker، وشهادات SSL من Let's Encrypt، وموازنة أحمال.","2026-05-13T00:00:00+00:00",{"id":168,"name":171,"slug":172,"color":173,"icon":172},[191],{"id":168,"name":171,"slug":172,"color":173,"icon":172},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-traefik-poster.svg",{"id":194,"slug":195,"slugs":196,"title":199,"excerpt":200,"readTime":14,"views":15,"isPinned":16,"publishedAt":201,"category":202,"categories":203,"featuredImage":25,"bgImage":26,"posterImage":205,"relatedSolution":25},37,"انشر-تطبيقاتك-باستخدام-nginx-proxy-manager-على-خادم-vps",{"fr":197,"en":198,"ar":195},"deployer-avec-nginx-proxy-manager","deploy-your-applications-with-nginx-proxy-manager-on-a-vps","انشر تطبيقاتك باستخدام Nginx Proxy Manager على خادم VPS","أدِر النطاقات وشهادات SSL والوكيل العكسي لعدة خدمات على خادم VPS باستخدام Nginx Proxy Manager: التثبيت وشبكات Docker واستكشاف أخطاء 502 والإعداد المتقدم.","2026-05-14T00:00:00+00:00",{"id":168,"name":171,"slug":172,"color":173,"icon":172},[204],{"id":168,"name":171,"slug":172,"color":173,"icon":172},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-nginx-proxy-manager-poster.svg",1787580958390]