HAProxy Là Gì? Các Thuật Ngữ Và Ứng Dụng Cân Bằng Tải Của HAProxy

Ngày đăng: 06/02/2023
Tác giả: Hostingviet
Lượt xem: 99
Theo dõi:

Cân bằng tải trong HAProxy là gì? Có mấy loại cân bằng tải? HAProxy và Nginx giống và khác nhau như thế nào? HostingViet sẽ giải đáp bạn trong bài viết này. Cùng tìm hiểu nhé!

HAProxy là gì?

HAProxy là từ viết tắt của cụm từ High Availability Proxy. Nó là một công cụ có mã nguồn mở được sử dụng để cân bằng tải TCP/HTTP, và là giải pháp máy chủ Proxy. Công cụ này hoạt động trên các môi trường Linux, FreeBSD, Solaris. 

Công dụng của HAProxy là cải thiện hiệu năng, độ tin cậy của hệ thống máy chủ thông qua việc phân phối công việc cho nhiều máy chủ (cụ thể là web, ứng dụng, cơ sở dữ liệu).

Hiện nay, nhiều website lớn như Twitter, GoDaddy, Reddit, Bitbucket, GitHub, Stack Overflow, Speedtest.net, và các sản phẩm do Amazon Web Service cung cấp đều sử dụng HAProxy.

haproxy

Các thuật ngữ, khái niệm trong HAProxy

Trong HAProxy có nhiều thuật ngữ, khái niệm được sử dụng. Tuy nhiên, trong phạm vi bài viết này, chúng tôi chỉ đề cập đến những khái niệm thông dụng.

Access Control List (ACL)

ACL được dùng để kiểm tra một vài điều kiện, đồng thời tiến hành các hành động tiếp theo dựa vào kết quả kiểm tra (ví dụ chặn một yêu cầu, lựa chọn một máy chủ). ACL cũng hỗ trợ việc điều tiết linh hoạt lưu lượng mạng dựa vào nhiều yếu tố (ví dụ dựa vào đường dẫn).

Backend

Đây là tập hợp các máy chủ nhận các yêu cầu được điều tiết. Các backend này được được định nghĩa khi cấu hình HAProxy.

Có 2 loại cấu hình phổ biến được định nghĩa trong backend:

  • Thuật toán cân bằng tải (bao gồm Round Robin, Least Connection, và IP Hash).
  • Danh sách máy chủ, Cổng (đảm nhận việc Nhận, và xử lý các yêu cầu).

Backend chứa một hoặc nhiều máy chủ. Khi thêm nhiều máy chủ vào backend sẽ giúp cải thiện tải, hiệu năng cũng như độ tin cậy của dịch vụ. Bên cạnh đó, khi có một máy chủ trong backend xảy ra sự cố thì các máy chủ khác sẽ đảm nhận việc chịu tải cho máy chủ này. 

Ví dụ:

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 cân bằng tải, các yêu cầu sẽ được phân phối đến các máy chủ. Đây chính là phương pháp sử dụng mặc định.
  • mode http: Là chỉ định proxy layer 7

Frontend

Frontend đóng vai trò định nghĩa cách thức mà các yêu cầu được điều tiết tới backend. Tương tự như backend, frontend cũng có thư mục frontend để định nghĩa các cấu hình frontend.

Cấu hình frontend gồm 3 thành phần sau:

- Tập các địa chỉ IP và Cổng (VD: 10.10.10.86:80, *:443).

- Các ACL.

  • Các backend nhận, xử lý yêu cầu.

haproxy

Các loại cân bằng tải trong HAProxy

Sau đây là 3 loại cân bằng tải trong HAProxy

1. Không có cân bằng tải

Đây là một kiến trúc đơn giản nhất của quá trình triển khai web. 

Dưới đây là ví dụ mô phỏng kiến trúc này. Theo đó, người dùng được kết nối trực tiếp với máy chủ web thông qua internet mà không dùng đến dịch vụ cân bằng tải. Điều này có nghĩa, khi máy chủ web gặp sự cố, người dùng không thể kết nối với nó được. Ngoài ra, nếu có nhiều người truy cập cùng lúc thì có thể xảy ra tình trạng máy chủ web không đáp ứng được các yêu cầu, gây ảnh hưởng xấu đến trải nghiệm của người dùng.

haproxy

2. Layer 4 Load Balancing

Để cân bằng tải các request đến nhiều máy chủ, bạn có thể dùng cân bằng tải layer 4 TCP (Transport layer – Tầng giao vận). Đây là phương pháp đơn giản, giúp điều hướng request bằng cách dựa vào IP, và Port.

Hình minh họa dưới đây là ví dụ về layer 4 load balancing.

Trong ví dụ này, khi request truy cập địa chỉ https://cdn.hostingviet.vn/, HAProxy sẽ thực hiện điều hướng đến backend web-backend xử lý.

*Lưu ý:

Hai webserver phải có nội dung giống nhau nhằm có thể phản hồi một kết quả thống nhất cho người dùng. Để làm được điều này, bạn ưu tiên dùng chung một cơ sở dữ liệu cho 2 máy chủ web.

haproxy

3. Layer 7 Load Balancing

Đây là một phương pháp tương đối phức tạp vì cân bằng tải tại tầng layer 7 (Application layer – Tầng ứng dụng). Khi dùng cân bằng tải tại layer 7 sẽ giúp điều hướng các request đến nhiều backend khác nhau, bằng cách dựa vào nội dung request.

Chế độ cân bằng tải này cho phép bạn dễ dàng triển khai nhiều máy chủ web server trên cùng một tên miền duy nhất.

Hình minh họa sau đây là một ví dụ về cân bằng tải Layer 7.

haproxy

Theo ví dụ, khi người dùng gửi yêu cầu truy cập đến https://cdn.hostingviet.vn/ thì HAProxy sẽ thực hiện điều hướng request tới web-1-backend. Nếu người dùng gửi yêu cầu truy cập tới https://cdn.hostingviet.vn/about/ thì HAProxy sẽ tiến hành điều hướng request đến web-2-backend.

Các thuật toán cân bằng tải được sử dụng trong HAProxy

Trong HAProxy, các thuật toán cân bằng tải được dùng là: 

  • roundrobin: Đây là thuật toán mặc định của HAProxy. Nó thực hiện nhiệm vụ chuyển request đến máy chủ theo lượt. 
  • leastconn: Thuật toán đóng vai trò chuyển các request đến máy chủ có ít kết nối nhất. 
  • source: Thuật toán chuyển các request đến máy chủ dựa vào việc hash IP của người dùng, nhằm đảm bảo họ luôn được kết nối đến một máy chủ. 

Health Check của HAProxy

Health check được dịch vụ cân bằng tải HAProxy sử dụng nhằm mục đích phát hiện những backend server đã sẵn sàng để xử lý các yêu cầu truy cập. Đây là một kỹ thuật giúp tránh việc loại bỏ máy chủ khỏi backend một cách thủ công khi nó chưa sẵn sàng. Bằng cách thiết lập kết nối TCP đến máy chủ, Health check sẽ kiểm tra được tính sẵn sàng xử lý request của backend server.

Khi không thể kết nối tới bất kỳ máy chủ nào, Health check tự động loại bỏ nó khỏi backend, đồng thời tất cả các traffic đều không được chuyển hướng đến máy chủ này cho đến khi nó thực hiện được Health check. 

Trong trường hợp, toàn bộ máy chủ thuộc backend xảy ra sự cố, dịch vụ sẽ chuyển trạng thái không khả dụ (HAProxy hiển thị status code 500). Khi có một máy chủ thuộc backend được chuyển từ trạng thái không khả dụ sang sẵn sàng, thì thông báo này không còn hiển thị, và kết nối trở lại bình thường.

haproxy

>>Xem thêm: HAProxy with SSL Pass-Through

So sánh HAProxy vs Nginx

Cả HAProxy và Nginx đều là dịch vụ cân bằng tải ổn định, được nhiều người sử dụng. HAProxy được phát triển để phục vụ cho mục đích cân bằng tải. Còn Nginx là một webserver có khả năng hoạt động như bộ cân bằng tải.

* Giống nhau:

  • Hỗ trợ HTTP, HTTPS, websocket.
  • Cân bằng tải HTTP, HTTPS
  • Hoạt động ổn định, và hiệu quả.
  • Có khả năng xử lý kết nối 10k mà không cần điều chỉnh.
  • Cho phép tùy chỉnh định dạng của nhật ký. Khi muốn nhập nhật ký, bạn truy cập Kiban/ Splunk/ Graylog.

* Khác nhau:

HAProxy:

  • Có thêm cân bằng tải TCP, TCP-SSL.
  • Tính năng health, điều kiện chuyển đổi dự phòng linh hoạt hơn Nginx.
  • Có bộ nhớ đệm cơ bản.
  • Cho xem chi tiết trạng thái máy chủ, các yêu cầu hoạt động.
  • Có chức năng xuất số liệu, tích hợp các giải pháp giám sát.
  • Hiệu suất hoạt động cao, phù hợp sử dụng để xử lý kết nối 100k, giao diện 40GbE.
  • Là phần mềm miễn phí, có mã nguồn mở. Nhà phát triển thu phí bằng việc bán thiết bị phần cứng có cài đặt sẵn HAProxy.

Nginx:

  • Người dùng phải trả phí để sử dụng dịch vụ cân bằng tải TCP – UDP.
  • Bộ nhớ đệm linh hoạt hơn HAProxy.
  • Cho phép tùy chỉnh định dạng nhật ký.
  • Phiên bản miễn phí không có trang trạng thái. 
  • Chức năng xuất số liệu chỉ có trong phiên bản trả phí, nên gây khó khăn cho người dùng bản miễn phí trong việc vận hành bộ cân bằng tải.
  • Phục vụ được các file cục bộ.
  • Có khả năng hỗ trợ các ứng dụng FastCGI.
  • Là một lõi mở, nhiều tính năng hữu dụng chỉ có ở bản tính phí. 

haproxy

>>Xem thêm: [ Proxy Là Gì ] Tính Năng Và Hướng Dẫn Cài Đặt Proxy Server

Nhà cung cấp Tên Miền - Hosting - VPS tốt nhất Việt Nam

Là đơn vị thuộc top 3 lĩnh vực dịch vụ lưu trữ website tại Việt Nam, Hosting Việt được đánh giá là nhà cung cấp tên miền giá rẻ và Hosting giá rẻ cũng như luôn nhận được nhiều lời giới thiệu từ diễn đàn tin học về nơi mua Hosting ở đâu tốt . Chỉ từ 50.000đ/tháng, người dùng đã có ngay cho mình một Hosting để thỏa sức học tập, nghiên cứu hoặc chạy demo website… Bên cạnh đó, Hosting Việt còn là đơn vị luôn tiên phong trong công nghệ điện toán đám mây (Cloud Hosting),gói thuê server với băng thông khủng không giới hạn.

Hosting Việt có đa dạng gói dịch vụ, bên cạnh những gói giá siêu rẻ 50.000đ/tháng, nhà cung cấp còn có những Vps giá rẻ chất lượng dành cho nhiều nhóm doanh nghiệp khác nhau. Các gói này luôn đáp ứng đủ nhu cầu lưu trữ, truy cập hàng chục nghìn người mỗi ngày.

Ngoài ra, với dịch vụ chăm sóc khách hàng chuyên nghiệp, đội ngũ kỹ thuật viên có chuyên môn cao sẽ nhanh chóng hỗ trợ, xử lý các vấn đề phát sinh. Từ đó, giúp người dùng có được sự trải nghiệp mượt mà, thú vị.

Qua bài viết trên Hosting Việt đã giúp bạn có thêm nhiều thông tin bổ ích! Hi vọng bạn sẽ có thể trang bị thêm thật nhiều kiến thức khác mà chúng tôi đã chia sẻ! Nếu thấy bài viết này hữu ích hãy subscribe để theo dõi những thông tin mới nhất từ Hosting Việt nhé.

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

Bài viết liên quan
 
 
2024/03/15

HostingViet ra mắt dịch vụ VPS mới: VPS Forex và VPS Website

VPS Forex VPS Forex là dịch vụ máy chủ riêng ảo dành riêng cho các Trader Forex với tốc độ mạng cao, chạy MetaTrader 4 v&a...
Tác giả:
Đọc thêm
 
 
2024/02/16

XUÂN PHÚ QUÝ - LÌ XÌ NHƯ Ý: HOÀN TIỀN 100% VÀO TÀI KHOẢN

1. Thời gian diễn ra chương trình Chương trình ưu đãi “Xuân Phú Quý - Lì xì Như Ý” diễn ...
Tác giả:
Đọc thêm
 
 
2023/12/14

HostingViet tặng IPv6 miễn phí khi thuê VPS tốc độ cao

Thuê VPS tốc độ cao, tặng 6 IPv6 miễn phí Từ ngày 12/12/2023, HostingViet chính thức áp dụng chương trình tặng 6 IPv6 miễn ...
Tác giả:
Đọc thêm
 
 
2024/01/25

Thuê máy chủ ảo giá rẻ ở đâu chất lượng và uy tín?

Máy chủ ảo là gì? Máy chủ ảo (tên tiếng anh là Virtual Private Server - VPS) là một dạng máy chủ được tạo ra ...
Tác giả:
Đọc thêm
 
 
2024/01/08

Nên thuê VPS nước ngoài hay VPS Việt Nam?

VPS là gì? VPS là tên viết tắt của cụm từ Virtual Private Server - máy chủ riêng ảo. Đây là dịch vụ lưu trữ phụ...
Tác giả:
Đọc thêm
 
 
2024/01/17

Những lưu ý quan trọng khi sử dụng Email Hosting

Email Hosting là gì? Email Hosting là một dịch vụ lưu trữ thư điện tử giúp doanh nghiệp có thể dễ dàng quản lý việc...
Tác giả:
Đọc thêm