[{"data":1,"prerenderedAt":219},["ShallowReactive",2],{"seo-verification":3,"blog-traefik-v3-على-vps-ريفرس-بروكسي-docker-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-traefik-v3-على-vps-ريفرس-بروكسي-docker-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":29,"ctaBody":29,"ctaButton":150,"ctaUrl":151,"relatedPosts":152},434,"traefik-v3-على-vps-ريفرس-بروكسي-docker",{"fr":12,"en":13,"ar":10,"es":14},"traefik-v3-vps-reverse-proxy","traefik-v3-vps-docker-reverse-proxy-https","traefik-v3-vps-reverse-proxy-docker-https","Traefik‏ v3‏ على VPS‏: ريفرس بروكسي Docker‏ مع HTTPS‏ تلقائي","انشر Traefik‏ v3‏ على خادمك الافتراضي في أقل من ساعة: HTTPS‏ تلقائي مع Let's Encrypt‏، توجيه بعلامات Docker‏، حماية بكلمة مرور، وHTTP\u002F3‏ — دون كتابة أي قاعدة nginx‏.",9,0,false,"2026-10-12T00:00:00+00:00","2026-10-13T14:10:28+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},3,"النشر","deploiement","bg-success\u002F10 text-success",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Ftraefik-v3-vps-reverse-proxy-poster.svg","لديك ثلاثة حاويات Docker‏ على خادمك الافتراضي: تطبيق Node‏، وخادم Python‏، وأداة إدارة. كل واحدة تستمع على منفذ مختلف، وتدير الشهادات يدويًا، وكل خدمة جديدة تعني تعديل nginx‏ وإعادة تحميل الإعداد. يحل Traefik‏ v3‏ هذه المشكلة تمامًا: يقرأ علامات Docker‏ من حاوياتك، ويضبط المسارات فورًا، ويجدد شهادات Let's Encrypt‏ تلقائيًا، ويعرض لوحة مراقبة — كل ذلك دون سطر واحد من إعداد nginx‏.",[34,38,49,52,74,77,84,87,90,98,137,140,147],{"type":35,"title":36,"body":37},"h2","لماذا Traefik‏ v3‏ بدلًا من nginx‏ لبيئة Docker‏ الخاصة بك","nginx‏ خادم HTTP‏ ممتاز، لكن إعداده ثابت: كل خدمة جديدة تستلزم ملف vhost‏ جديدًا وإعادة تحميل للعملية. Traefik‏ مصمم للبيئات المعتمدة على الحاويات حيث تتغير الطبولوجيا باستمرار. في الإصدار 3، يدعم HTTP\u002F3‏ (QUIC)‏ بشكل أصيل، وبنية middlewares‏ مبسطة، ووقت تشغيل أكثر صرامة يرفض الإعدادات الغامضة.",{"type":39,"items":40},"ul",[41,42,43,44,45,46,47,48],"اكتشاف تلقائي للحاويات عبر علامات Docker‏ — لا إعادة تحميل يدوية عند إضافة خدمة‏.","HTTPS‏ تلقائي مع Let's Encrypt‏: شهادات تُحصل وتُخزن وتُجدد دون تدخل‏.","Middlewares‏ أصيلة قابلة للتعريف بالعلامات: BasicAuth‏، rate-limit‏، رؤوس الأمان، إعادة التوجيه‏.","لوحة تحكم مدمجة للمراقبة الفورية: تتبع جميع المسارات والشهادات من المتصفح‏.","دعم HTTP\u002F3‏ (QUIC)‏ بسطر إعداد واحد: يحسن الأداء على الاتصالات عالية الكمون‏.","التوجيه بقواعد Host‏ وPathPrefix‏ والترويسات أو أي تركيبة — بصيغة Go Template‏ معبرة‏.","API REST‏ داخلية: استعلم عن حالة الموجه وافحص الخلفيات النشطة‏.","متوافق مع Docker Swarm‏ وKubernetes‏ وNomad‏ — انتقل دون تغيير علاماتك‏.",{"type":35,"title":50,"body":51},"المتطلبات التقنية قبل البدء","يتطلب هذا التثبيت خادم VPS‏ يعمل بنظام Debian 12‏ أو Ubuntu 22.04\u002F24.04‏، وDocker Engine 25+‏، وDocker Compose v2.24+‏. تأكد من أن المنفذين 80‏ و443‏ مفتوحان من الإنترنت في جدار الحماية. ستحتاج إلى اسم نطاق تتحكم في سجلات DNS‏ الخاصة به: وجّه سجل A‏ إلى عنوان IP‏ الخادم قبل البدء، وإلا لن تتمكن Let's Encrypt‏ من إصدار الشهادة. عنوان بريد إلكتروني صالح مطلوب لإشعارات انتهاء صلاحية ACME‏.",{"type":53,"title":54,"steps":55},"steps","التثبيت الكامل لـ Traefik‏ v3‏ خطوة بخطوة",[56,58,60,62,64,66,68,70,72],{"body":57},"**إنشاء شبكة Docker‏ المشتركة‏.** يجب أن يكون Traefik‏ على نفس شبكة الخدمات التي يوجّهها. أنشئها مرة واحدة: `docker network create traefik-public`‏. ستُشار إلى هذه الشبكة في كل ملف `docker-compose.yml`‏ للخدمات‏.",{"body":59},"**إنشاء ملف `acme.json`‏ للشهادات‏.** ستكتب Let's Encrypt‏ شهاداتها في هذا الملف. يجب أن يكون مملوكًا لـ root‏ بصلاحيات 600‏ بالضبط: `touch \u002Fopt\u002Ftraefik\u002Facme.json && chmod 600 \u002Fopt\u002Ftraefik\u002Facme.json`‏. إذا كانت الصلاحيات خاطئة، سيرفض Traefik‏ الإقلاع‏.",{"body":61},"**إنشاء ملف `docker-compose.yml`‏ الخاص بـ Traefik‏‏.** ضع الملف في `\u002Fopt\u002Ftraefik\u002Fdocker-compose.yml`‏ مع الإعداد الكامل: نقاط الدخول TLS‏، ومحلل ACME‏ لـ Let's Encrypt‏، وعلامات لوحة التحكم المحمية‏.",{"body":63},"**توليد هاش BasicAuth‏ للوحة التحكم‏.** استبدل السلسلة المضمنة بهاش bcrypt‏ حقيقي: `echo $(htpasswd -nB admin) | sed -e 's\u002F\\$\u002F\\$\\$\u002Fg'`‏. أمر `htpasswd`‏ موجود في حزمة `apache2-utils`‏. يجب مضاعفة علامات `$`‏ في قيم علامات Docker Compose‏.",{"body":65},"**تشغيل Traefik‏‏.** من `\u002Fopt\u002Ftraefik\u002F`‏: `docker compose up -d`‏. تحقق من السجلات: `docker compose logs -f traefik`‏. يجب أن ترى `\"Starting provider\" providerType=Docker`‏ ثم `\"Attaching router\" routerName=dashboard`‏.",{"body":67},"**إضافة خدمة خلف Traefik‏‏.** في ملف `docker-compose.yml`‏ الخاص بتطبيقك، انضم إلى شبكة `traefik-public`‏ (كشبكة خارجية) وأضف أربع علامات أساسية: `traefik.enable=true`‏، وقاعدة `Host()`‏، ونقطة الدخول `websecure`‏، ومحلل الشهادة، ومنفذ الخلفية‏.",{"body":69},"**التحقق من شهادات Let's Encrypt‏‏.** افحص `acme.json`‏: `cat \u002Fopt\u002Ftraefik\u002Facme.json | python3 -m json.tool | grep -A3 'domain'`‏. يجب أن ترى نطاقاتك مع تاريخ انتهاء صلاحية بعد 90‏ يومًا‏.",{"body":71},"**التحقق من إعادة توجيه HTTP‏ إلى HTTPS‏‏.** اختبر بـ curl‏: `curl -v http:\u002F\u002Fapp.dominio.com`‏. يجب أن تحصل على `301 Moved Permanently`‏ إلى `https:\u002F\u002F`‏. إذا حصلت على رفض للاتصال على المنفذ 80‏، تحقق من قواعد جدار الحماية‏.",{"body":73},"**تفعيل HTTP\u002F3‏ من جهة المتصفح‏‏.** أضف ترويسة `Alt-Svc`‏ عبر middleware‏ عام في علامات Traefik‏. الترويسة `Alt-Svc: h3=\":443\"; ma=86400`‏ تخبر المتصفح بدعم QUIC‏. تحقق بـ `curl --http3 https:\u002F\u002Fapp.dominio.com -v`‏.",{"type":35,"title":75,"body":76},"Middlewares‏ الأساسية: BasicAuth‏ ومحدود المعدل ورؤوس الأمان","تُطبَّق middlewares‏ Traefik‏ عبر علامات Docker‏ مباشرةً على موجّه الخدمة. إليك أهم ثلاث middlewares‏ في الإنتاج، تُعلَن على الخدمة ذاتها دون لمس الإعداد المركزي لـ Traefik‏.",{"type":39,"items":78},[79,80,81,82,83],"**BasicAuth‏ على مسار خاص** — لحماية أداة إدارة (Adminer‏، Flower‏...): أضف علامات `traefik.http.middlewares.adminauth.basicauth.users`‏ و`traefik.http.routers.myadmin.middlewares=adminauth`‏‏.","**Rate-limit‏ ضد الإساءة** — يحمي API‏ أو نموذج تواصل: اضبط `ratelimit.average=100`‏ (100 طلب\u002Fثانية بالمتوسط) و`ratelimit.burst=50`‏ (تحمّل 50 طلبًا متفجرًا)‏.","**رؤوس أمان HTTP‏** — `X-Frame-Options`‏، `X-Content-Type-Options`‏، `Strict-Transport-Security`‏: تقبل middleware‏ `headers`‏ في Traefik‏ جميع هذه القيم مباشرةً كعلامات دون ملف nginx‏ منفصل‏.","**Redirect Regex‏** — لإعادة توجيه `www.dominio.com`‏ إلى `dominio.com`‏: استخدم middleware‏ `redirectregex`‏ مع `permanent=true`‏ وتعبير منتظم مناسب‏.","**Compress‏** — فعّل ضغط gzip\u002Fbrotli‏ على جميع الاستجابات النصية بعلامة واحدة: `traefik.http.middlewares.compress.compress=true`‏‏.",{"type":85,"body":86},"tip","**HTTP\u002F3‏ (QUIC)‏ في سطرين‏.** في قسم `command`‏ من ملف `docker-compose.yml`‏ الخاص بـ Traefik‏، أضف `--entrypoints.websecure.http3=true`‏ واكشف منفذ UDP‏ 443‏. يُنشئ QUIC‏ الاتصالات بسرعة أكبر بنسبة تصل إلى 30%‏ على الشبكات المعرضة للخسارة ويُلغي مشكلة head-of-line blocking‏. المتصفحات الحديثة تفعّله تلقائيًا عبر ترويسة `Alt-Svc`‏. لا تعديلات مطلوبة على مستوى التطبيق‏.",{"type":35,"title":88,"body":89},"الترحيل من Traefik‏ v2‏: التغييرات الكاسرة","يُدخل Traefik‏ v3‏ قطائع متعمدة مع v2‏ لإزالة الغموض المتراكم. البشرى الجيدة: الترحيل تدريجي — يمكن للإعدادات الإصدارين التعايش أثناء الانتقال. إليك أكثر النقاط كسرًا‏.",{"type":39,"items":91},[92,93,94,95,96,97],"**`docker.swarmMode`‏ أصبح `docker.swarmmode`‏** (بأحرف صغيرة كاملة). إذا استخدمت الإعداد القديم، يتجاهله Traefik‏ v3‏ بصمت وتوقف اكتشاف Swarm‏‏.","**قاعدة `PathPrefix`‏ بدون شرطة مائلة لاحقة**: في v3‏، `PathPrefix('\u002Fapi')`‏ مكافئ لـ `PathPrefix('\u002Fapi\u002F')`‏ — يتم توحيد الشرطة المائلة اللاحقة‏.","**`tls.certificates`‏ في الإعداد الديناميكي**: في v3‏، يجب أن يكون هذا القسم في الإعداد الثابت (`traefik.yml`‏) أو عبر مزود مخصص‏.","**middleware‏ `errors`‏**: المعامل `query`‏ أصبح `url`‏. يجب تحديث أي إعداد يستخدم `errors.query`‏‏.","**إزالة دعم بروتوكول `spiffe`‏**: إذا كنت تستخدم مصادقة SPIFFE‏ في بنية Consul‏، انتقل إلى حل mTLS‏ قياسي قبل الترقية إلى v3‏‏.","**إعداد `constraints`‏ في Docker‏**: تغيّرت صياغة القيود لتتوافق مع تنسيق علامات Docker‏ القياسي‏.",{"type":99,"title":100,"headers":101,"rows":106},"comparison","Traefik‏ v3‏ مقابل nginx‏ مقابل Caddy‏: أي ريفرس بروكسي لـ Docker‏؟",[102,103,104,105],"المعيار","Traefik‏ v3","nginx","Caddy‏ v2",[107,112,117,122,127,132],[108,109,110,111],"الإعداد","علامات Docker‏ أو TOML‏ أو YAML‏ — إعادة تحميل تلقائية فورية","ملفات vhost‏ ثابتة — إعادة تحميل يدوية (`nginx -s reload`‏)","Caddyfile‏ تصريحي — إعادة تحميل تلقائية فورية",[113,114,115,116],"HTTPS‏ التلقائي","مدمج أصليًا (ACME v2‏، تحدي TLS-ALPN‏ أو HTTP-01‏)","يتطلب certbot‏ و cron‏ وسكريبت إعادة تحميل","مدمج أصليًا، الأبسط في الإعداد (سطر واحد)",[118,119,120,121],"توجيه Docker‏ الديناميكي","أصيل: اكتشاف فوري للحاويات عبر Docker socket‏","غير أصيل: يتطلب nginx-proxy‏ أو تعديلًا يدويًا","أصيل عبر إضافة caddy-docker-proxy‏ (غير رسمية)",[123,124,125,126],"HTTP\u002F3‏ (QUIC)‏","مدعوم أصليًا منذ v3‏ (2024‏)، تفعيل بسطر واحد","مدعوم منذ nginx 1.25‏ (2023‏)، إعداد إضافي مطلوب","مدعوم أصليًا منذ Caddy 2.6‏ (2022‏)",[128,129,130,131],"الأداء الخام","أقل قليلًا من nginx‏ عند الإنتاجية العالية جدًا (أكثر من 50k‏ طلب\u002Fثانية)","المرجع الصناعي للإنتاجية العالية والتزامن","مقارب لـ nginx‏ في معظم أحمال الويب القياسية",[133,134,135,136],"منحنى التعلم","معتدل — مفاهيم الموجّه والخدمة والـ middleware‏ يجب استيعابها","مرتفع لـ HTTPS‏ مع Docker‏ — توثيق مجزأ","منخفض — الإعداد الأكثر إيجازًا للحالات البسيطة",{"type":35,"title":138,"body":139},"استكشاف الأخطاء: الأخطاء الخمسة الأكثر شيوعًا","معظم مشكلات Traefik‏ في الإنتاج تنشأ من ثلاثة مصادر: صلاحيات ملف `acme.json`‏، شبكة Docker‏ المفقودة، وعلامات مُهرَّبة بشكل خاطئ في Compose‏. إليك الأخطاء مع رسائلها الفعلية‏.",{"type":39,"items":141},[142,143,144,145,146],"**`level=error msg=\"Unable to obtain ACME certificate\" error=\"acme: error 403\"`‏** — Let's Encrypt‏ لا تستطيع التحقق من نطاقك. تحقق من أن المنفذ 80‏ مفتوح من الإنترنت وأن DNS‏ نطاقك يشير إلى عنوان IP‏ الخادم‏.","**`level=error msg=\"The acme.json file has bad file permissions\"`‏ ثم رفض Traefik‏ للإقلاع** — صلاحيات الملف ليست 600‏. صحّح: `chmod 600 \u002Fopt\u002Ftraefik\u002Facme.json`‏‏.","**الخدمة مرئية في لوحة Traefik‏ لكن خطأ 502 Bad Gateway** — حاوية الخدمة ليست على شبكة `traefik-public`‏. تحقق بـ `docker inspect \u003Ccontainer> | grep -A20 Networks`‏‏.","**علامات مُتجاهَلة بصمت، المسار غائب عن لوحة التحكم** — نسيت `traefik.enable=true`‏ على الخدمة، أو `--providers.docker.exposedbydefault=false`‏ نشط والعلامة غائبة‏.","**`invalid character '$' in label value`‏** — علامات `$`‏ في هاشات BasicAuth‏ غير مضاعفة في ملف Compose‏. الصيغة الصحيحة: `$$2y$$10$$...`‏ في `docker-compose.yml`‏‏.",{"type":35,"title":148,"body":149},"الخطوة التالية: تعزيز بيئة Docker‏ للإنتاج","يتولى Traefik‏ v3‏ التوجيه وTLS‏، لكن بيئة Docker‏ جاهزة للإنتاج تتطلب المزيد: healthchecks‏ على الحاويات، وسياسة إعادة التشغيل، وسجلات مركزية، وتدوير الأسرار، ونسخ احتياطية للأحجام. راجع دليل **docker-compose-production-checklist**‏ للحصول على قائمة مرجعية كاملة تطبّقها قبل نشر أي خدمة في حاوية على خادمك الافتراضي‏.","اكتشف خوادمنا السحابية","\u002Fvps-cloud",[153,169,189,204],{"id":154,"slug":155,"slugs":156,"title":160,"excerpt":161,"readTime":23,"views":162,"isPinned":19,"publishedAt":163,"updatedAt":164,"category":165,"categories":166,"featuredImage":29,"bgImage":30,"posterImage":168,"relatedSolution":29},38,"انشر-تطبيقاتك-باستخدام-traefik-على-خادم-vps",{"fr":157,"en":158,"ar":155,"es":159},"deployer-avec-traefik","deploy-your-applications-with-traefik-on-a-vps","desplegar-con-traefik","انشر تطبيقاتك باستخدام Traefik على خادم VPS","انشر Traefik كوكيل عكسي على خادم VPS الخاص بك: توجيه تلقائي لحاويات Docker، وشهادات SSL من Let's Encrypt، وموازنة أحمال.",2,"2026-05-13T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[167],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-traefik-poster.svg",{"id":170,"slug":171,"slugs":172,"title":176,"excerpt":177,"readTime":178,"views":179,"isPinned":19,"publishedAt":180,"updatedAt":164,"category":181,"categories":186,"featuredImage":29,"bgImage":30,"posterImage":188,"relatedSolution":29},227,"caddy-أم-traefik-أم-nginx-proxy-manager-أيهما-تختار",{"fr":173,"en":174,"ar":171,"es":175},"choisir-reverse-proxy-vps-caddy-traefik-nginx","caddy-traefik-or-nginx-proxy-manager-which-to-choose","elegir-reverse-proxy-vps-caddy-traefik-nginx","‏Caddy أم Traefik أم Nginx Proxy Manager: أيهما تختار؟","دليل المقارنة بين ‏Caddy و‏Traefik و‏Nginx Proxy Manager لاختيار بروكسي عكسي لـ‏Docker على خادم VPS. معايير وجدول مقارنة وتوصيات حسب الملف الشخصي.",10,1,"2026-08-06T00:00:00+00:00",{"id":182,"name":183,"slug":184,"color":185,"icon":184},5,"مقارنات","comparatif","bg-info\u002F10 text-info",[187],{"id":182,"name":183,"slug":184,"color":185,"icon":184},"\u002Fblog\u002Fcovers\u002Fchoisir-reverse-proxy-vps-caddy-traefik-nginx-poster.svg",{"id":190,"slug":191,"slugs":192,"title":196,"excerpt":197,"readTime":17,"views":18,"isPinned":19,"publishedAt":198,"updatedAt":199,"category":200,"categories":201,"featuredImage":29,"bgImage":30,"posterImage":203,"relatedSolution":29},384,"nginx-proxy-manager-على-vps-إعداد-reverse-proxy",{"fr":193,"en":194,"ar":191,"es":195},"nginx-proxy-manager-vps-reverse-proxy","nginx-proxy-manager-vps-reverse-proxy-setup","nginx-proxy-manager-vps-proxy-inverso","Nginx Proxy Manager على VPS: بروكسي عكسي بصري مع SSL تلقائي","أعدّ بروكسياً عكسياً بصرياً على VPS باستخدام Nginx Proxy Manager: شهادات Let's Encrypt تلقائية، توجيه Docker متعدد التطبيقات، دون تعديل nginx.conf.","2026-09-26T00:00:00+00:00","2026-09-29T14:40:42+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[202],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fnginx-proxy-manager-vps-reverse-proxy-poster.svg",{"id":205,"slug":206,"slugs":207,"title":211,"excerpt":212,"readTime":213,"views":18,"isPinned":19,"publishedAt":180,"updatedAt":214,"category":215,"categories":216,"featuredImage":29,"bgImage":30,"posterImage":218,"relatedSolution":29},229,"docker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط",{"fr":208,"en":209,"ar":206,"es":210},"docker-compose-production-checklist","docker-compose-in-production-10-point-checklist","checklist-docker-compose-en-produccion","Docker Compose في الإنتاج: قائمة التحقق من 10 نقاط","‏قائمة تحقق Docker Compose للإنتاج: 10 إعدادات أساسية، فحوصات صحية، أسرار بدون توقف، استراتيجية التراجع، استكشاف الأخطاء الشائعة.",12,"2026-09-29T14:40:45+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[217],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdocker-compose-production-checklist-poster.svg",1791900927572]