HAProxy là gì? Ứng dụng trong cân bằng tải

  • Wednesday 24/01/2024

HAProxy là gì?

HAProxy (High Availability Proxy) là một công cụ mã nguồn mở ứng dụng cho giải pháp cân bằng tải TCP và HTTP. Người dùng có thể sử dụng HAProxy để cải thiện độ hoàn thiện của các trang web và ứng dụng bằng cách phân tán khối lượng công việc của chúng trên nhiều máy chủ. Cải thiện hiệu suất bao gồm giảm phản hồi thời gian và tăng thông lượng. HAProxy cũng được sử dụng trong các hệ thống lớn có lưu lượng truy cập cao như GoDaddy, GitHub, Bitbucket, Stack Overflow, Reddit, Speedtest.net, Twitter …

1. Tính năng của HAProxy

haproxy

Các tính năng của HAProxy bao gồm:

  • Hỗ trợ cân bằng tải ở lớp 4 và lớp 7 ( tương ứng với TCP và HTTP),
  • Support HTTP protocol, HTTP / 2, gRPC, FastCGI.
  • Chấm dứt SSL / TLS.
  • Lưu trữ chứng chỉ SSL động.
  • Chuyển đổi nội dung và kiểm tra.
  • Ủy quyền minh bạch.
  • Ghi nhật ký chi tiết.
  • CLI.
  • Xác thực HTTP.
  • Đa luồng
  • Rewrite URL.

2. Cân bằng tải

LB

HAProxy là một trong những phần mềm hàng đầu trong việc cân bằng tải và được sử dụng chạy trên Linux, Solaris và FreeBSD. Vậy cân bẳng tải là gì?

Chúng ta có một ví dụ, nếu người dùng kết nối trực tiếp đến web server(domainabc.com). Nếu web server duy nhất này gặp vấn đề, người dùng sẽ không thể truy cập vào website được nữa. Hoặc nếu nhiều người dùng cố gắng truy cập vào server cùng một lúc thì sẽ xảy ra hiện trạng quá tải, khiến thời gian tải website bị chậm đi, đóng băng hoặc kết nói bị gián đoạn.

Ta có thể khắc phục bằng cách thêm vào hệ thống cân bằng tải và ít nhất một web server hỗ trợ bổ sung trên backend. Thông thường là tất cả nội dụng mà người dùng nhận được là như nhau dù cho họ đang connect đến server nào. Đó là ví dụ cho sự quan trọng của cân bằng tải, nếu web server là các hệ thống lớn các website có nhiều lượng truy cập cực cao thì việc sử dụng hệ thống cân bằng tải là không thể thiếu để tránh gây ảnh hưởng không đáng.

Các thuật toán được sử dụng trong cân bằng tải (load balancer):

  • Round-robin: Đây là thuật toán mặc định được sử dụng cho HAProxy, các request sẽ lần lượt chuyển tới server.
  • Leastconn: Các request sẽ được chuyển tới server có ít kết nói đến nó nhất.
  • Source: Các request sẽ được chuyển đến server bằng các hash của IP người dùng

3. Bảo mật trong HAProxy

HAProxy được coi là an toàn, nó có rất ít lỗ hổng trong các năm qua. Nó chứa các tính năng có thể hạn chế tấn công như cô lập chính nó sử dụng chroot, drop ngay user/group không có các quyền đặc biệt khi khỏi động và tránh truy cập vào ổ cứng khi khởi động.

HAProxy cũng có thể được sử dụng để bảo mật cho các hệ thống khác, ví dụ như: HAProxy theo dõi lưu lượng truy cập và giám sát hành vi của khách hàng thông qua các yêu cầu, sau đó có thể chặn khách hàng đó nếu thấy khả nghi. Người dùng có thể cấu hình ACL, xác định các chính sách để kiểm tra dữ liệu của các truy cập. Nó cũng có thể giới hạn tốc độ và danh sách IP Blacklist/Whitelist/

4. Health Check

HAProxy sử dụng health check để phát hiện các backend server sẵn sàng xử lý request. Kỹ thuật này sẽ trách việc loại bỏ server khỏi backend thủ công khi backend server không sẵn sàng. Health check sẽ cố gắng thiết lập kết nói TCP tới server để kiểm tra backend server có sẵn sàng xử lý request.

Nếu health check không thể kế nói tới server, nó sẽ tự động loại server khỏi backend, các traffic tới sẽ không được chuyển đến server cho đến khi nó có thể pass healthy check. Nếu tất cả server thuộc backend đều xảy ra vấn đề, service sẽ trở nên không khả dụng cho đến khi 1 server thuộc backend chuyển về trạng thái sẵn sàng.

Tóm lại

HAProxy là một công cụ không thể thiếu trong việc xây dựng web server của những hệ thống có lượng truy cập lớn.

Nếu bạn đang quan tâm giải pháp cân bằng tải cho hệ thống của mình thì có thể tham khảo giải pháp Cân Bằng Tải do P.A Việt Nam cung cấp tại đây.

5/5 - (2 bình chọn)