← العودة للمدونة

أداة HAProxy: شرح وتثبيت

عندما نتحدث عن "توزيع الأحمال" (Load Balancing) عالي الأداء، فإن الاسم الأول الذي يتبادر للذهن هو HAProxy. يستخدمه عمالقة مثل Twitter و GitHub و Stack Overflow لمعالجة ملايين الطلبات في الثانية.

ما هو HAProxy؟

هو برنامج مفتوح المصدر يوفر موازنة أحمال (Load Balancer) وبروكسي عكسي (Reverse Proxy) لتطبيقات TCP و HTTP. يتميز بالسرعة الخارقة واستهلاك الموارد المنخفض جداً.

المفاهيم الأساسية

  • Frontend: يستقبل الطلبات من العملاء (يحدد البورت والبروتوكول).
  • Backend: مجموعة السيرفرات التي يتم توجيه الطلبات إليها.
  • ACLs: قواعد مرنة جداً لتوجيه الحركة (مثلاً: توجيه طلبات /api إلى سيرفرات مختلفة عن /static).

مثال تكوين بسيط (haproxy.cfg)


frontend http_front
    bind *:80
    acl url_api path_beg /api
    use_backend api_servers if url_api
    default_backend web_servers

backend web_servers
    balance roundrobin
    server web1 10.0.0.1:80 check
    server web2 10.0.0.2:80 check

backend api_servers
    server api1 10.0.0.3:8080 check
                    

HAProxy vs Nginx

بينما Nginx هو ويب سيرفر شامل يمكنه عمل Load Balancing، فإن HAProxy متخصص فقط في الـ Proxying. هذا يجعله يتفوق في الخوارزميات المعقدة لتوزيع الأحمال والمراقبة الدقيقة لحالة السيرفرات (Health Checks).