#

HAProxy là gì? Các loại Load Balancing trong HAProxy phổ biến

 20/08/2022 - 15:00 Trịnh Duy Thanh

HAProxy được xem là công cụ hỗ trợ cải thiện hiệu suất máy chủ hiệu quả nhất hiện nay. Vậy cụ thể thuật ngữ HAProxy là gì? Có những loại HAProxy nào? Hãy cùng BKHOST tìm hiểu trong bài viết dưới đây.

HAProxy là gì?

HAProxy la gi

HAProxy – High Availability Proxy là một phần mềm mã nguồn mở phổ biến với TCP/HTTP Load Balancer và được phát triển trên Linux, macOS và FreeBSD.

Dịch vụ NVMe Hosting WordPress tốc độ cao

BKHOST đang có chương trình khuyến mãi cực tốt dành cho khách hàng đăng ký dịch vụ NVMe Hosting WordPress:

  • Giảm giá lên đến 40%.
  • Giá chỉ từ 23k/tháng.
  • Tặng gói bảo mật SSL Let’s Encrypt.

Đăng ký ngay:

wordpress host

Phần mềm này có khả năng cải thiện hiệu năng, tăng độ tin cậy của hệ thống bằng cách phân phối đều các lượng công việc trên nhiều máy chủ khác nhau như Web, App, cơ sở dữ liệu,…Ngoài ra, HAProxy còn là sự lựa chọn của nhiều Website lớn hiện nay như GoDaddy, GitHub, Stack Overflow, Twitter.

Một số thuật ngữ của HAProxy

Những thuật ngữ chính của HAProxy bao gồm:

ACL

ACL – Access Control List là danh sách kiểm soát truy cập được sử dụng để xem xét các điều kiện và tiến hành thực thi hành động dựa vào kết quả xem xét đó. Ngoài ra, ACL còn cho phép các lưu lượng mạng có thể di chuyển linh hoạt dựa vào nhiều yếu tố như mẫu hoặc đường dẫn.

Ví dụ về một ACL như sau: acl url_blog path_beg /blog

Trong đó, ACL này phù hợp với một đường dẫn được bắt đầu bằng /blog, chẳng hạn như http://yourdomain.com/blog/blog-entry-1.

Backend

Backend xuất hiện trong quá trình cấu hình HAProxy bao gồm các máy chủ nhận yêu cầu được chuyển tiếp. Về cơ bản, Backend có hai cấu hình phổ biến đó là Load Balancing – thuật toán cân bằng tải; danh sách máy chủ và cổng. Mỗi Backend có thể chứa nhiều máy chủ giúp cải thiện hiệu suất tải và tăng độ tin cậy của các dịch vụ. Đồng thời, nếu có một máy chủ trong Backend xảy ra sự cố thì toàn bộ máy chủ còn lại sẽ đảm nhận việc chịu tải cho máy chủ này.

Ví dụ: Cấu hình của hai loại Backend là web-backend và blog-backend trên cổng 80:

backend web-backend
balance roundrobin
server web1 web1.yourdomain.com:80 check
server web2 web2.yourdomain.com:80 check

backend blog-backend
balance roundrobin
mode http
server blog1 blog1.yourdomain.com:80 check
server blog1 blog1.yourdomain.com:80 check

Trong đó, balance roundrobin là thuật toán Load balancing còn mode http là chỉ định Proxy L7.

Frontend

Frontend là giao diện người dùng được sử dụng để xác định các yêu cầu được chuyển tiếp tới Backend. Ngoài ra, Frontend cũng có thư mục Frontend để định nghĩa các cấu hình HAProxy như:

  • Tập hợp các địa chỉ IP và cổng, chẳng hạn như địa chỉ IP 10.1.1.7:80, *443.
  • Các ACL giúp kiểm soát truy cập tốt hơn.
  • Một số quy tắc use_backend giúp xác định các ACL tương thích với default_backend.

Các loại Load Balancing trong HAProxy

Một số loại Load Balancing phổ biến trong HAProxy bao gồm:

No Load Balancing

Môi trường ứng dụng web cơ bản không có Load Balancing sẽ có giao diện như sau:

no load balancing
HAProxy không có Load Balancing

Từ hình ảnh trên cho thấy người dùng được kết nối trực tiếp với Web Server thông qua Internet đến yourdomain.com mà không có Load Balancing. Tuy nhiên, có một vấn đề đối với mô hình này đó là nếu như Web Server gặp sự cố thì người dùng sẽ không thể thực hiện bất kỳ kết nối nào với nó. Trong trường hợp khác, nếu có quá nhiều lượt truy cập cùng một lúc thì Web Server sẽ không thể xử lý tải gây ra tình trạng lag, chậm hoặc mất kết nối.

Load Balancing L4

Load Balancing L4 đảm bảo cho tất cả lưu lượng mạng đều được phân bổ đến nhiều máy chủ. Phương pháp này cho phép chuyển tiếp các lưu lượng truy cập dựa trên IP và port đến http://yourdomain.com/anything. Sau đó, các lưu lượng này sẽ được Backend xử lý cho yourdomain.com trên cổng 80.

Sơ đồ minh họa về Load Balancing L4:

Load Balancing L4
Load Balancing L4 trong HAProxy

Khi người dùng truy cập vào Load Balancing, nó sẽ chuyển tiếp yêu cầu đó đến Web-Backend của Backend Server được kết nối trên máy chủ cơ sở dữ liệu. Những Backend Server được chọn sẽ phản hồi trực tiếp yêu cầu của người dùng.

Load Balancing L7

Load Balancing L7 là lớp ứng dụng cho phép chuyển tiếp các yêu cầu đến nhiều Backend Server khác nhau dựa trên nội dung mong muốn. Ngoài ra, với chế độ này người dùng có thể chạy nhiều máy chủ ứng dụng web trên cùng một tên miền và port.

Sơ đồ về một Load Balancing L7 cơ bản:

Load Balancing L7
Load Balancing L7 trong HAProxy

Trong sơ đồ trên, nếu người dùng yêu cầu một yourdomain.com/blog thì HAProxy sẽ chuyển tiếp yêu cầu đó đến Blog Backend. Các yêu cầu khác sẽ được chuyển tiếp đến web-backend trên một ứng dụng khác. Trong đó, cả hai phần mềm Backend này đều sử dụng cùng một máy chủ cơ sở dữ liệu.

Ví dụ: Một đoạn mã cấu hình trong frontend:

frontend http
bind *:80
mode http
acl url_blog path_beg /blog
use_backend blog-backend if url_blog
default_backend web-backend

Trong đó:

  • Cấu hình frontend có tên là http xử lý mọi lưu lượng được chuyển đến cổng 80.
  • acl url_blog path_beg / blog khớp với một yêu cầu nếu đường dẫn bắt đầu bằng /blog.
  • use_backend blog-backend nếu url_blog sử dụng ACL để ủy quyền lưu lượng truy cập đến blog-backend.
  • default_backend web-backend chỉ định rằng tất cả các lưu lượng khác sẽ được chuyển tiếp đến web-backend.

Tổng kết về HAProxy

Như vậy, thông qua bài viết trên đây bạn đọc đã hiểu hơn về HAProxy chưa nào! Đó là một phần mềm mã nguồn mở giúp cải thiện hiệu suất và độ tin cậy của hệ thống máy chủ. Để sử dụng HAProxy, bạn hãy tìm hiểu cách thức cài đặt và sử dụng sẽ được bật mí trong những bài viết sắp tới của BKHOST.

Nếu còn có câu hỏi nào liên quan đến HAProxy, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.



Dịch vụ Cho Thuê Server Riêng tiêu chuẩn quốc tế

BKHOST đang có chương trình khuyến mãi cực tốt dành cho khách hàng đăng ký dịch vụ Server Riêng:

  • Giảm giá lên đến 45%.
  • 100% RAM vật lý.
  • Tặng thêm 16GB RAM.

Đăng ký ngay:

dedicated server

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger
Góp ý cho chúng tôi