[{"data":1,"prerenderedAt":181},["ShallowReactive",2],{"seo-verification":3,"blog-haproxy-على-خادم-vps-موازنة-الأحمال-والتوافر-العالي-ma-ar":6,"promo-bar-likely":180},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-haproxy-على-خادم-vps-موازنة-الأحمال-والتوافر-العالي-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":123,"ctaBody":124,"ctaButton":125,"ctaUrl":126,"relatedPosts":127},142,"haproxy-على-خادم-vps-موازنة-الأحمال-والتوافر-العالي",{"fr":12,"en":13,"ar":10,"es":14},"deployer-avec-haproxy-vps","haproxy-on-a-vps-load-balancing-and-high-availability","haproxy-en-un-vps-balanceo-de-carga","HAProxy على خادم VPS: موازنة الأحمال والتوافر العالي","ثبّت HAProxy على خادم VPS لتوزيع حركة المرور ومراقبة الخوادم الخلفية (backends) وإعداد بنية ويب أكثر مرونة.",8,1,false,"2026-02-03T00:00:00+00:00","2026-10-13T14:10:29+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\u002Fdeployer-avec-haproxy-vps-poster.svg",{"categorySlug":33,"appSlug":34},"infra","haproxy","‏HAProxy هو المعيار الفعلي لموازنة الأحمال (load balancing) والتوافر العالي على خوادم ‏Linux. على خادم VPS من ServOrbit، يُثبَّت في دقائق عبر ‏Marketplace ويُهيَّأ بالكامل من الملف ‏`\u002Fetc\u002Fhaproxy\u002Fhaproxy.cfg`. يتناول هذا الدليل الشامل الإعداد الكامل — ‏frontend\u002Fbackend وقوائم ACL وإنهاء ‏SSL\u002FTLS وفحوص الصحة وصفحة الإحصاءات واستكشاف أكثر الأخطاء شيوعًا — ليكون بنيتك التحتية جاهزةً للإنتاج.",[37,41,51,79,82,106,109,117,120],{"type":38,"title":39,"body":40},"h2","لماذا تستضيف HAProxy على خادم VPS مخصّص؟","‏HAProxy (High Availability Proxy) برنامج مفتوح المصدر لموازنة الأحمال وproxy من نوع TCP\u002FHTTP، معروف بأدائه العالي في الإنتاج. تتيح لك استضافته على خادم VPS مخصّص مركزة توزيع حركة المرور بين خوادمك التطبيقية، وضمان استمرارية الخدمة عند تعطّل إحدى العقد، وإدارة قواعد التوجيه بدقّة دون رسوم ترخيص. على خادم VPS بـ 2 vCPU و2 غيغابايت من RAM، يعالج ‏HAProxy آلاف الاتصالات المتزامنة بيُسر.",{"type":42,"title":43,"items":44},"ul","ما يمكنك فعله بـ HAProxy",[45,46,47,48,49,50],"توزيع حركة مرور HTTP\u002FHTTPS بين عدة خوادم تطبيقية بخوارزميات قابلة للتهيئة (roundrobin، leastconn، source…)","إعداد reverse proxy لعرض عدة خدمات داخلية خلف عنوان IP عام واحد","مراقبة صحة الخوادم الخلفية بفحوص صحة تلقائية واستبعاد خادم مُعطَّل دون انقطاع الخدمة","إنهاء اتصالات SSL\u002FTLS في الواجهة الأمامية (offloading) لتخفيف عبء التشفير عن خوادمك التطبيقية","توجيه حركة المرور حسب النطاق أو المسار بفضل قوائم ACL (host_hdr، path_beg) على المنفذ 443 وحده","الاطّلاع على إحصاءات حركة المرور في الوقت الفعلي عبر واجهة الويب المدمجة (stats uri \u002Fstats)",{"type":52,"title":53,"steps":54},"steps","تثبيت HAProxy وتهيئته على خادم VPS من ServOrbit",[55,58,61,64,67,70,73,76],{"title":56,"body":57},"اطلب خادم VPS Cloud من ServOrbit وابدأ التثبيت","توجّه إلى صفحة \u002Fvps-cloud واختر عرضًا بـ 2 vCPU على الأقل و2 غيغابايت من RAM. افتح Marketplace من لوحة معلومات خادم VPS، وابحث عن «HAProxy»، ثم انقر على «تثبيت». يُجهَّز ‏HAProxy تلقائيًا عبر apt — لا يلزم أي اتصال SSH في هذه المرحلة. يمكن التثبيت اليدوي أيضًا: `sudo apt update && sudo apt install -y haproxy`",{"title":59,"body":60},"فهم بنية ملف haproxy.cfg","يقع ملف التهيئة الرئيسي في `\u002Fetc\u002Fhaproxy\u002Fhaproxy.cfg`. يتألّف من أربعة أقسام: `global` (العملية والسجلات وحدود النظام)، `defaults` (المهلات والأوضاع الموروثة)، `frontend` (منافذ الاستماع وقواعد ACL)، و`backend` (الخوادم الهدف والخوارزمية وفحوص الصحة). حرّره بـ: `sudo nano \u002Fetc\u002Fhaproxy\u002Fhaproxy.cfg`",{"title":62,"body":63},"تهيئة frontend وbackend كاملَين لـ HTTP\u002FHTTPS","إليك تهيئة كاملة لخادمَين تطبيقيَّين مع إنهاء SSL:\n\n```\nglobal\n    log \u002Fdev\u002Flog local0\n    maxconn 50000\n    user haproxy\n    group haproxy\n\ndefaults\n    log     global\n    mode    http\n    option  httplog\n    timeout connect 5s\n    timeout client  30s\n    timeout server  30s\n\nfrontend http_front\n    bind *:80\n    redirect scheme https code 301\n\nfrontend https_front\n    bind *:443 ssl crt \u002Fetc\u002Fhaproxy\u002Fcerts\u002Fbundle.pem\n    default_backend app_servers\n\nbackend app_servers\n    balance roundrobin\n    option httpchk GET \u002Fhealth\n    server app1 192.168.1.10:3000 check weight 1 inter 2s fall 3 rise 2\n    server app2 192.168.1.11:3000 check weight 2 inter 2s fall 3 rise 2\n```\n\nيُوجِّه المعامل `weight` نسبةً أكبر من حركة المرور إلى app2. يُرسل `option httpchk GET \u002Fhealth` طلب HTTP إلى المسار `\u002Fhealth` للتحقّق من استجابة كل backend.",{"title":65,"body":66},"تهيئة قوائم ACL للتوجيه حسب النطاق والمسار","تتيح قوائم ACL توجيه حركة المرور إلى backends مختلفة حسب اسم النطاق أو مسار الطلب. أضف في frontend:\n\n```\nfrontend https_front\n    bind *:443 ssl crt \u002Fetc\u002Fhaproxy\u002Fcerts\u002Fbundle.pem\n\n    acl host_api   hdr(host) -i api.monsite.com\n    acl host_app   hdr(host) -i app.monsite.com\n    acl path_admin path_beg  \u002Fadmin\n\n    use_backend api_servers   if host_api\n    use_backend admin_servers if path_admin\n    use_backend app_servers   if host_app\n    default_backend app_servers\n```\n\nتفحص `hdr(host)` رأسية HTTP Host لتحديد النطاق. تُوجِّه `path_beg \u002Fadmin` كل الطلبات التي يبدأ مسارها بـ `\u002Fadmin` إلى backend مخصّص.",{"title":68,"body":69},"إنهاء SSL\u002FTLS مع Let's Encrypt وإنشاء bundle PEM","يتوقّع ‏HAProxy ملفًا `.pem` يحتوي على الشهادة والسلسلة الوسيطة والمفتاح الخاص بهذا الترتيب. بعد الحصول على شهادتك مع Certbot، أنشئ الحزمة:\n\n```\nsudo mkdir -p \u002Fetc\u002Fhaproxy\u002Fcerts\nsudo cat \u002Fetc\u002Fletsencrypt\u002Flive\u002Fmonsite.com\u002Ffullchain.pem \\\n         \u002Fetc\u002Fletsencrypt\u002Flive\u002Fmonsite.com\u002Fprivkey.pem \\\n  | sudo tee \u002Fetc\u002Fhaproxy\u002Fcerts\u002Fbundle.pem\nsudo chmod 600 \u002Fetc\u002Fhaproxy\u002Fcerts\u002Fbundle.pem\n```\n\nلأتمتة التجديد، أضف سكريبت post-hook في `\u002Fetc\u002Fletsencrypt\u002Frenewal-hooks\u002Fpost\u002Fhaproxy.sh` يُعيد بناء الحزمة ويُشغّل `systemctl reload haproxy`.",{"title":71,"body":72},"تفعيل صفحة إحصاءات HAProxy","تعرض صفحة الإحصاءات المدمجة حالة كل frontend وbackend وخادم في الوقت الفعلي. أضف كتلة frontend مخصّصة:\n\n```\nfrontend stats\n    bind *:8404\n    stats enable\n    stats uri \u002Fstats\n    stats refresh 10s\n    stats auth admin:MotDePasseSecret\n    stats hide-version\n```\n\nادخل إليها على `http:\u002F\u002Fyour-ip:8404\u002Fstats`. يحمي `stats auth` الصفحة بمصادقة HTTP Basic. يُخفي `stats hide-version` إصدار ‏HAProxy للحدّ من التعرّض للثغرات المنشورة.",{"title":74,"body":75},"التحقّق من التهيئة وإعادة التحميل دون انقطاع","قبل أي إعادة تحميل، تحقّق من صحة بناء ملف التهيئة:\n\n```\nsudo haproxy -c -f \u002Fetc\u002Fhaproxy\u002Fhaproxy.cfg\n```\n\nإن عرضت الأمرُ `Configuration file is valid`، أعِد تحميل ‏HAProxy دون قطع الاتصالات النشطة:\n\n```\nsudo systemctl reload haproxy\n```\n\nتأكّد من أن الخدمة نشطة: `sudo systemctl status haproxy`. يضمن `reload` (وليس `restart`) إعادةَ تحميل آمنة: تنتهي الاتصالات القائمة بصورة طبيعية قبل توقّف العمّال القدامى.",{"title":77,"body":78},"فحص السجلات والمراقبة المستمرة","يُرسل ‏HAProxy سجلاته إلى syslog. اعرضها في الوقت الفعلي:\n\n```\nsudo journalctl -u haproxy -f\n```\n\nتُظهر كل سطر الـ frontend والـ backend والخادم المختار ورمز HTTP وأوقات الاتصال — ضروريٌّ لتشخيص مشكلة توجيه أو backend بطيء.",{"type":38,"title":80,"body":81},"فحوص الصحة المتقدّمة: اكتشاف الخوادم الخلفية المُعطَّلة","يُفعِّل توجيه `check` على كل سطر `server` فحوصَ الصحة. يفتح ‏HAProxy اتصال TCP افتراضيًا للتحقّق من استجابة المنفذ. للتعمّق أكثر، يُرسل `option httpchk GET \u002Fhealth` طلبًا HTTP حقيقيًا وينتظر رمز 2xx. تعني معاملات `inter 2s fall 3 rise 2`: الفحص كل ثانيتين، إزالة الخادم بعد 3 حالات فشل متتالية، إعادة إدماجه بعد نجاحين. تضمن هذه التهيئة إقصاء backend مُعطَّل من المجمّع في 6 ثوانٍ بالحد الأقصى. أضف `option redispatch` ليُعيد ‏HAProxy محاولة الطلبات الفاشلة على خادم آخر في المجمّع.",{"type":83,"title":84,"headers":85,"rows":89},"comparison","خوارزميات موازنة الأحمال: أيّها تختار؟",[86,87,88],"الخوارزمية","السلوك","الأنسب لـ",[90,94,98,102],[91,92,93],"roundrobin","يوزّع الطلبات دوريًا بين الخوادم. يدعم المعامل weight لضبط التوزيع.","الـ backends ذات القدرات المتكافئة",[95,96,97],"leastconn","يُرسل كل طلب جديد إلى الخادم ذي أقل عدد من الاتصالات النشطة.","الاتصالات الطويلة (WebSocket، قاعدة البيانات)",[99,100,101],"source","يُجزِّئ عنوان IP المصدر لثبات الجلسة دون cookie.","الجلسات التي لا يمكن مشاركتها بين الـ backends",[103,104,105],"uri","يُجزِّئ URI الطلب للتوجيه دائمًا إلى الـ backend ذاته.","ذاكرات التخزين المؤقت حيث تُهمّ موضعية البيانات",{"type":38,"title":107,"body":108},"استكشاف الأخطاء وإصلاحها: الأخطاء الشائعة والحلول","إليك أكثر خمسة أخطاء شيوعًا عند تهيئة HAProxy أو إعادة تحميله، مع سببها وخطوات إصلاحها.",{"type":42,"title":110,"items":111},"الأخطاء الشائعة وطرق حلّها",[112,113,114,115,116],"**`[ALERT] Starting frontend http_front: cannot bind socket [0.0.0.0:80]`** — المنفذ 80 يستخدمه عملية أخرى (nginx، apache2). حدّدها بـ `sudo ss -tlnp | grep ':80'`، وأوقف الخدمة المنافسة (`sudo systemctl stop nginx`)، ثم أعِد تحميل HAProxy.","**`[WARNING] Server app_servers\u002Fapp1 is DOWN, reason: Layer4 connection problem`** — لا يستطيع HAProxy الوصول إلى عنوان IP أو منفذ الـ backend. تحقّق من أن الخادم التطبيقي يعمل، وأن جداره الناري يسمح بالاتصالات من IP خادم VPS لـ HAProxy، وأن العنوان في `haproxy.cfg` صحيح.","**`[ALERT] parsing [\u002Fetc\u002Fhaproxy\u002Fhaproxy.cfg:42] : unknown keyword 'serveur'`** — خطأ في بناء جملة ملف التهيئة. يُشير الأمر `haproxy -c -f \u002Fetc\u002Fhaproxy\u002Fhaproxy.cfg` إلى رقم السطر بالضبط. كلمات HAProxy المفتاحية بالإنجليزية: `server`، `frontend`، `backend`. تحقّق أيضًا من المسافات البادئة (HAProxy يقبل المسافات فقط).","**`[ALERT] ssl library has no cert for frontend https_front`** أو **certificate expired** — ملف bundle.pem غائب أو فارغ أو يحتوي شهادة منتهية. أعِد بناء الحزمة من ملفات Let's Encrypt المحدَّثة (`fullchain.pem` + `privkey.pem`) ثم أعِد التحميل.","**صفحة الإحصاءات تُعيد HTTP 403** — تهيئة `stats auth` موجودة لكن بيانات الاعتماد لم تُرسَل، أو عنوان IP المصدر ليس في قائمة `stats allow-from`. تحقّق من العنوان (`\u002Fstats` افتراضيًا) وبيانات الاعتماد، وأضف مؤقتًا `stats allow-from 0.0.0.0\u002F0` للتشخيص.",{"type":118,"body":119},"tip","نصيحة: بعد كل تعديل على `haproxy.cfg`، شغّل دائمًا `sudo haproxy -c -f \u002Fetc\u002Fhaproxy\u002Fhaproxy.cfg` قبل `systemctl reload`. يستغرق هذا التحقّق من الصحة أقل من ثانية ويمنع أي انقطاع في الخدمة إن كان الملف يحتوي خطأً.",{"type":118,"title":121,"body":122},"للتعمّق أكثر","تُفصِّل \u003Ca href=\"https:\u002F\u002Fdocs.haproxy.org\u002F\" target=\"_blank\" rel=\"noopener noreferrer\">الوثائق الرسمية لـ HAProxy\u003C\u002Fa> جميع التوجيهات وخيارات TCP المتقدّمة ودعم QUIC\u002FHTTP3 (HAProxy 2.6+) وتهيئة التوافر العالي مع Keepalived لتبادل الملكية على IP افتراضي بين نسختَي HAProxy. يغطّي هذا الدليل النشر على خادم VPS من ServOrbit؛ وتبقى وثائق الناشر المرجع للضبط الدقيق.","انشر HAProxy في دقائق على خادم VPS Cloud من ServOrbit","أطلق خادم VPS Cloud من ServOrbit الآن وثبّت HAProxy بنقرة واحدة عبر Marketplace — بنية تحتية احترافية دون تعقيد.","أطلق خادم VPS Cloud الخاص بي","\u002Fvps-cloud",[128,144,161],{"id":129,"slug":130,"slugs":131,"title":135,"excerpt":136,"readTime":137,"views":23,"isPinned":19,"noindex":19,"publishedAt":138,"updatedAt":139,"category":140,"categories":141,"featuredImage":29,"bgImage":30,"posterImage":143,"relatedSolution":29},38,"انشر-تطبيقاتك-باستخدام-traefik-على-خادم-vps",{"fr":132,"en":133,"ar":130,"es":134},"deployer-avec-traefik","deploy-your-applications-with-traefik-on-a-vps","desplegar-con-traefik","انشر تطبيقاتك باستخدام Traefik على خادم VPS","انشر Traefik كوكيل عكسي على خادم VPS الخاص بك: توجيه تلقائي لحاويات Docker، وشهادات SSL من Let's Encrypt، وموازنة أحمال.",11,"2026-05-13T00:00:00+00:00","2026-11-08T01:13:13+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[142],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-traefik-poster.svg",{"id":145,"slug":146,"slugs":147,"title":151,"excerpt":152,"readTime":153,"views":154,"isPinned":19,"noindex":19,"publishedAt":155,"updatedAt":156,"category":157,"categories":158,"featuredImage":29,"bgImage":30,"posterImage":160,"relatedSolution":29},37,"انشر-تطبيقاتك-باستخدام-nginx-proxy-manager-على-خادم-vps",{"fr":148,"en":149,"ar":146,"es":150},"deployer-avec-nginx-proxy-manager","deploy-your-applications-with-nginx-proxy-manager-on-a-vps","desplegar-con-nginx-proxy-manager","انشر تطبيقاتك باستخدام Nginx Proxy Manager على خادم VPS","أدِر النطاقات وشهادات SSL والوكيل العكسي لعدة خدمات على خادم VPS باستخدام Nginx Proxy Manager: التثبيت وشبكات Docker واستكشاف أخطاء 502 والإعداد المتقدم.",10,7,"2026-05-14T00:00:00+00:00","2026-11-08T01:13:14+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[159],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-nginx-proxy-manager-poster.svg",{"id":162,"slug":163,"slugs":164,"title":168,"excerpt":169,"readTime":17,"views":170,"isPinned":19,"noindex":19,"publishedAt":171,"updatedAt":172,"category":173,"categories":174,"featuredImage":29,"bgImage":30,"posterImage":176,"relatedSolution":177},39,"انشر-تطبيقاتك-باستخدام-caddy-على-خادم-vps",{"fr":165,"en":166,"ar":163,"es":167},"deployer-avec-caddy","deploy-your-applications-with-caddy-on-a-vps","desplegar-con-caddy","Caddy كـ reverse proxy على VPS: دليل شامل","ثبّت Caddy وهيّئه كـ reverse proxy على VPS: HTTPS تلقائي عبر ‎Let's Encrypt‎، تطبيقات متعددة، تأمين الخادم وحل الأخطاء الشائعة.",4,"2026-05-12T00:00:00+00:00","2026-09-25T23:43:04+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[175],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caddy-poster.svg",{"categorySlug":178,"appSlug":179},"نشر-التطبيقات-وdevops","caddy",true,1794270338545]