HAProxy là gì? Giới thiệu tổng quan và các mô hình Load Balancing phổ biến

Views: 61 20/04/2026 09:53
HAProxy là gì? Giới thiệu tổng quan và các mô hình Load Balancing phổ biến

Trong các hệ thống website, ứng dụng web hoặc API có lượng truy cập lớn, việc đảm bảo tốc độ truy cập nhanh và hệ thống luôn ổn định là điều rất quan trọng. Đây chính là lúc HAProxy trở thành một giải pháp cực kỳ mạnh mẽ.

HAProxy là viết tắt của High Availability Proxy, một phần mềm mã nguồn mở chuyên dùng cho load balancing (cân bằng tải) và reverse proxy.

Nói đơn giản, HAProxy đứng ở giữa người dùng và các máy chủ backend, sau đó phân phối request đến từng server sao cho hợp lý nhất. (DigitalOcean)

Ví dụ:

Người dùng truy cập:

https://domain.com

Thay vì request đi thẳng vào một server duy nhất, HAProxy sẽ tiếp nhận request trước rồi chuyển tiếp đến:

web01
web02
web03

Điều này giúp hệ thống:

  • tăng tốc độ xử lý

  • tránh quá tải một server

  • tăng tính sẵn sàng (high availability)

  • giảm downtime

  • dễ mở rộng hệ thống

(HAProxy Technologies)

HAProxy có thể làm những gì?

HAProxy không chỉ đơn thuần là cân bằng tải mà còn hỗ trợ rất nhiều tính năng mạnh.

1. Load Balancing (Cân bằng tải)

Đây là chức năng quan trọng nhất.

HAProxy sẽ chia đều request đến nhiều server backend.

Ví dụ:

1000 request / phút

Nếu có 4 server, HAProxy có thể chia đều:

250 request / server

giúp tránh tình trạng nghẽn server.

2. Reverse Proxy

HAProxy hoạt động như một reverse proxy.

Người dùng chỉ nhìn thấy IP hoặc domain của HAProxy, còn backend server sẽ được ẩn phía sau.

Điều này giúp:

  • tăng bảo mật

  • che IP server thật

  • dễ quản lý SSL

  • dễ routing domain/subdomain

(HAProxy Technologies)

3. SSL Offloading / SSL Termination

HAProxy có thể xử lý SSL/TLS thay cho backend.

Ví dụ:

HTTPS -> HAProxy -> HTTP backend

Điều này giúp giảm tải CPU cho web server.

4. Health Check

HAProxy tự động kiểm tra backend server còn sống hay không.

Ví dụ:

server web1 10.0.0.10:80 check

Nếu server lỗi hoặc timeout, HAProxy sẽ tự động loại khỏi hệ thống.

(HAProxy Technologies)

5. Failover / High Availability

Nếu một server bị lỗi, request sẽ tự động chuyển sang server khác.

Ví dụ:

web1 down -> chuyển sang web2

Điều này giúp website luôn online.

Các mô hình Balance của HAProxy và ý nghĩa

1. Round Robin

Đây là mô hình phổ biến nhất.

HAProxy chia request theo vòng lặp tuần tự.

Ví dụ có 3 server:

web1
web2
web3

Request sẽ đi như sau:

req1 -> web1
req2 -> web2
req3 -> web3
req4 -> web1

Ý nghĩa:

  • chia đều request

  • đơn giản

  • phù hợp khi server cấu hình giống nhau

Ví dụ config:

balance roundrobin

(HAProxy Technologies)

2. Least Connection

Request sẽ được gửi đến server có ít kết nối nhất.

Ví dụ:

web1 = 120 connections
web2 = 40 connections

Request mới sẽ vào:

web2

Ý nghĩa:

  • tối ưu cho hệ thống traffic động

  • phù hợp website nhiều user online cùng lúc

  • tốt hơn round robin trong thực tế

Config:

balance leastconn

(HAProxy Technologies)

3. Source / IP Hash

HAProxy dựa vào IP client để quyết định server.

Ví dụ:

192.168.1.10 -> web1
192.168.1.10 -> luôn web1

Ý nghĩa:

  • giữ phiên đăng nhập ổn định

  • sticky session

  • phù hợp web login, giỏ hàng

Config:

balance source

4. URI Hash

Dựa vào URL hoặc đường dẫn.

Ví dụ:

/images/logo.png -> web1
/css/style.css -> web2

Ý nghĩa:

  • tối ưu cache

  • phù hợp static content

  • CDN cache

(HAProxy Technologies)

5. Random

Chọn server ngẫu nhiên.

balance random

Ý nghĩa:

  • chia tải ngẫu nhiên

  • ít dùng hơn round robin

Nên dùng mô hình nào?

Anh gợi ý thực tế:

  • website thường → roundrobin

  • website traffic lớn → leastconn

  • web login / session → source

  • cache / static file → uri hash

Kết luận

HAProxy là một giải pháp cực kỳ mạnh cho:

  • load balancing

  • reverse proxy

  • SSL termination

  • health check

  • high availability

Đây là công cụ gần như bắt buộc khi triển khai hệ thống web chuyên nghiệp hoặc cụm nhiều VPS. (LogicMonitor)

Chúc các bạn thành công

haproxy là gì haproxy load balancing mô hình cân bằng tải haproxy round robin haproxy least connection haproxy reverse proxy haproxy haproxy tutorial