پرش به محتوا

توزیع بار وب با HAProxy

ترافیک HTTP را بین دو وب‌سرور پخش کنید، سلامت آن‌ها را بررسی کنید و صفحه‌ی آمار HAProxy را فعال کنید.

Ubuntu 24.04 LTSسطح: متوسطبه‌روزرسانی: ۱۶ آبان ۱۴۰۵

در این مثال HAProxy روی 192.168.10.5 ترافیک را بین web1 (192.168.10.11) و web2 (192.168.10.12) پخش می‌کند.

۱. نصب

bash
sudo apt update
sudo apt install -y haproxy

۲. پیکربندی

bash
sudo nano /etc/haproxy/haproxy.cfg

به انتهای فایل اضافه کنید:

ini
frontend web_in
    bind *:80
    mode http
    option forwardfor
    default_backend web_servers

backend web_servers
    mode http
    balance roundrobin
    option httpchk GET /
    http-check expect status 200
    server web1 192.168.10.11:80 check
    server web2 192.168.10.12:80 check

listen stats
    bind 127.0.0.1:8404
    mode http
    stats enable
    stats uri /
    stats refresh 10s

۳. بررسی و اعمال

bash
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl reload haproxy

۴. آزمایش

bash
for i in 1 2 3 4; do curl -s http://192.168.10.5/ | grep -o 'web[12]'; done

اگر یکی از وب‌سرورها را خاموش کنید، HAProxy ظرف چند ثانیه آن را از چرخه خارج می‌کند.

۵. مشاهده‌ی آمار

صفحه‌ی آمار فقط روی localhost باز است. از رایانه‌ی خود با تونل SSH ببینید:

bash
ssh -L 8404:127.0.0.1:8404 user@192.168.10.5

سپس در مرورگر: http://localhost:8404