HAProxy là gì? Các thuật ngữ, ứng dụng phổ biến trong cân bằng tải HAProxy

HAProxy là gì? Đây là điều mà bạn nhất định sẽ quan tâm khi muốn tìm kiếm giải pháp giúp bạn có thể đánh giá một ứng dụng, phần mềm nào đó của mình hoạt động ra sao. Chúng ta sẽ cùng phân tích các thông tin để hiểu hơn về HAProxy, những điểm nổi bật của nó trong cân bằng tải, các thuật ngữ và ứng dụng phổ biến trong cân bằng tải HAProxy?

haproxy là gì
Haproxy - Phần mềm mã nguồn mở cân bằng tải và phân phối proxy

1. Haproxy là gì?

HAProxy là một trình cân bằng tải phần mềm có tốc độ nhanh nhất và được sử dụng rộng rãi nhất trên thế giới ở thời điểm hiện tại. Nó là công cụ sử dụng mã nguồn mở để cân bằng tải TCP và HTTP. Đồng thời cũng là giải pháp phân phối các máy chủ Proxy trên hệ điều hành Linux, MacOS và FreeBSD.

Trình cân bằng này chịu trách nhiệm cung cấp tính khả dụng, khả năng bảo mật và quan sát cao bằng cách phân phối khối lượng công việc trên nhiều máy chủ. Haproxy được sử dụng trong nhiều môi trường cấu hình cao như: Instagram, Twitter, Gitlab, Bitbucket, Imgur...

Năm 2001, phiên bản HAProxy 1.0 ra đời và phiên bản mới nhất 2.0 cũng được cho ra mắt vào năm 2019. Đối với các nhà phát triển phần mềm, HAProxy được coi là một phần thiết yếu trong cơ sở hạ tầng của họ.

haproxy là gì 2
HAProxy là một phần thiết yếu trong cơ sở hạ tầng phát triển phần mềm

2. Những tính năng nổi bật của HAProxy là gì?

HAProxy có rất nhiều tính năng. Trong đó, những tính năng nổi bật nhất phải kể đến ở phần mềm mã nguồn mở cân bằng tải này, đó là:

  • Hỗ trợ cân bằng tải ở lớp thứ 4 và lớp thứ 7 (các lớp này tương ứng với TCP và HTTP).
  • Hỗ trợ giao thức HTTP, HTTP / 2, gRPC và FastCGI.
  • Lưu trữ chứng chỉ số SSL động.
  • Phân phối, chuyển đổi và kiểm tra nội dung giữa các máy chủ.
  • Ghi lại nhật ký chi tiết về các nội dung chuyển đổi.
  • Kiểm tra, xác thực giao thức HTTP.
  • Ghi lại và lưu trữ các URL.
  • HAProxy có tính năng ủy quyền công khai, minh bạch.
  • Cung cấp các giao diện dòng lệnh CLI giúp hỗ trợ tương tác giữa các máy chủ.

3. Các thuật ngữ phổ biến trong cân bằng tải HAProxy

Trong HAProxy có rất nhiều thuật ngữ và khái niệm quan trọng. Vì thế, các bạn cần nắm được những thuật ngữ phổ biến nhất của trình cân bằng tải này. Đó là:

3.1 Access Control List (ACL)

Access Control List (ACL) là danh sách kiểm soát truy cập. Nó được sử dụng để kiểm tra một số điều kiện và thực hiện một hành động. Chẳng hạn: Chọn máy chủ hoặc chặn yêu cầu dựa trên kết quả kiểm tra. Việc sử dụng ACL cho phép chuyển tiếp lưu lượng mạng linh hoạt dựa trên nhiều yếu tố như khớp mẫu và số lượng kết nối với phụ trợ.

haproxy là gì 3
Access Control List (ACL) là danh sách kiểm soát truy cập

Ví dụ về ACL: acl url_blog path_beg / blog

>> ACL này được so khớp nếu đường dẫn yêu cầu của người dùng bắt đầu bằng / blog. Ví dụ: điều này sẽ khớp với một yêu cầu của http://yourdomain.com/blog/blog-entry-1.

3.2 Backend (Phần phụ trợ)

Backend là một tập hợp các máy chủ nhận các yêu cầu được chuyển tiếp. Nó được định nghĩa trong phần phụ trợ của cấu hình HAProxy. Ở dạng cơ bản nhất, một chương trình phụ trợ có thể được định nghĩa bằng: sử dụng thuật toán cân bằng tải nào hay danh sách các máy chủ và cổng.

Một chương trình phụ trợ có thể chứa một hoặc nhiều máy chủ trong đó. Về cơ bản, việc thêm nhiều máy chủ hơn vào chương trình phụ trợ của bạn sẽ tăng khả năng tải tiềm năng của bạn bằng cách dàn trải tải trên nhiều máy chủ. Độ tin cậy tăng lên cũng đạt được thông qua cách này, trong trường hợp một số máy chủ phụ trợ của bạn không khả dụng.

Dưới đây là một ví dụ về cấu hình hai chương trình phụ trợ, phần phụ trợ web và phần phụ trợ blog với hai máy chủ web ở mỗi bên, phân tích, xử lý trên cổng 80:

Backend Web-BackendBackend Blog-Backend
balance roundrobin

server web1
web1.yourdomain.com:80 check

server web2 web2.yourdomain.com:80 check
balance roundrobin

mode http

server blog1 blog1.yourdomain.com:80 check

server blog1 blog1.yourdomain.com:80 check

Trong ví dụ trên, “balance roundrobin” chỉ định thuật toán cân bằng tải, được trình bày chi tiết trong phần thuật toán cân bằng tải. “Mode http” chỉ định proxy lớp 7 được sử dụng. Còn các tùy chọn kiểm tra ở dưới chỉ thị máy chủ chỉ định rằng kiểm tra tình trạng phải được thực hiện trên các máy chủ phụ trợ đó.

3.3 Frontend (Giao diện người dùng)

Giao diện người dùng xác định cách các yêu cầu sẽ được chuyển tiếp đến các phần mềm phụ trợ. Giao diện người dùng được định nghĩa trong phần giao diện người dùng của cấu hình HAProxy.

4. Phân loại cân bằng tải trong HAProxy

Các loại cân bằng tải trong HAProxy là gì? Có rất nhiều loại khác nhau và chúng ta sẽ cùng tìm hiểu về từng loại một ở phần thông tin tiếp theo nhé!

4.1 No Load Balancing

No Load Balancing nghĩa là không có cân bằng tải. Đối với phân loại này, người dùng sẽ kết nối trực tiếp với máy chủ web của bạn, tại yourdomain.com và không có cân bằng tải.

Nếu một máy chủ web của bạn gặp sự cố, người dùng sẽ không thể truy cập vào máy chủ web của bạn nữa. Ngoài ra, nếu nhiều người dùng đang cố gắng truy cập đồng thời vào máy chủ của bạn và máy chủ không thể xử lý tải, họ có thể gặp phải tình trạng lag hoặc không thể kết nối được.

haproxy là gì

4.2 Cân bằng tải 4 lớp

Đây là cách đơn giản nhất để cân bằng tải lưu lượng mạng đến nhiều máy chủ. Cân bằng tải theo cách này sẽ chuyển tiếp lưu lượng truy cập của người dùng dựa trên dải IP và cổng (nghĩa là nếu có yêu cầu đến http://yourdomain.com/anything, lưu lượng sẽ được chuyển tiếp đến phần phụ trợ xử lý tất cả các yêu cầu cho yourdomain.com trên cổng 80).

haproxy là gì 5
Mô hình cân bằng tải 4 lớp

Ở cân bằng tải 4 lớp, người dùng truy cập vào trình cân bằng tải. Công cụ này sẽ chuyển tiếp yêu cầu của người dùng đến nhóm máy chủ phụ trợ web. Bất kỳ máy chủ phụ trợ nào được chọn sẽ phản hồi trực tiếp yêu cầu của người dùng. Tuy nhiên, tất cả các máy chủ trong web-backend phải cung cấp nội dung giống hệt nhau – nếu không người dùng có thể nhận được nội dung không nhất quán.

4.3 Cân bằng tải 7 lớp

Một cách cân bằng tải lưu lượng mạng khác phức tạp hơn là sử dụng cân bằng tải lớp 7 (lớp ứng dụng). Sử dụng lớp 7 cho phép bộ cân bằng tải chuyển tiếp các yêu cầu đến các máy chủ phụ trợ khác nhau dựa trên nội dung yêu cầu của người dùng. Cân bằng tải 7 lớp cho phép bạn chạy nhiều máy chủ ứng dụng web trong cùng một tên miền và cổng.

haproxy là gì
Mô hình cân bằng tải 7 lớp

5. Lời kết

Các bạn thân mến! Những chia sẻ trên đây đã giúp bạn giải đáp HAProxy là gì, các tính năng, các thuật ngữ sử dụng trong phần mềm mã nguồn mở cân bằng tải và phân phối Proxy. Hy vọng các bạn thể hiểu rõ về các phân loại cân bằng tải trong Haproxy để có những ứng dụng tốt nhất. Nếu các bạn còn bất cứ thắc mắc nào cần giải đáp chi tiết. Hoặc cần tư vấn hỗ trợ về cài đặt, sử dụng trình cân bằng tải này thì hãy liên hệ tới Lanit để được giúp đỡ nhé

LANIT Cảm ơn bạn đã đọc!

avata Hải

Triệu Huyền Trang

Triệu Huyền Trang chuyên gia 3 năm kinh nghiệm trong ngành Công Nghệ, Phần Mềm. Chuyên chia sẻ các kiến thức phần mềm mã nguồn, ứng dụng và thông tin về công nghệ hữu ích.

Chat với chúng tôi qua Zalo!
Chat với chúng tôi qua Zalo!