Nội dung bài viết
#

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

Nội dung bài viết

    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.

    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:

    {{EJS0}}

    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:

    {{EJS1}}

    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.



    Mua Hosting Linux tại BKHOST

    Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay:

    cloud hosting linux

    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
    Trượt lên đầu trang
    Miễn phí cước gọi
    Bạn đã hài lòng với trải nghiệm trên Bkhost.vn?
    Cảm ơn lượt bình chọn của bạn, Chúc bạn 1 ngày tốt lành !