Haproxy là gì

     

Cân bởi tải trong HAProxy là gì? có mấy loại cân bằng tải? HAProxy cùng Nginx như là và khác nhau như cố nào? ktktdl.edu.vn đang giải đáp bạn trong bài viết này.

Bạn đang xem: Haproxy là gì


Cân bằng tải vào HAProxy là gì? tất cả mấy loại cân bằng tải? HAProxy và Nginx tương tự và khác biệt như nắm nào? Mời chúng ta cùng theo dõi bài xích tổng hòa hợp sau để sở hữu lời giải cho những vấn đề này nhé.

HAProxy là gì?

HAProxy là từ viết tắt của các từ High Availability Proxy. Nó là một trong những công cụ tất cả mã nguồn mở được thực hiện để cân bằng tải TCP/HTTP, cùng là giải pháp máy chủ Proxy. Phép tắc này vận động trên các môi trường Linux, FreeBSD, Solaris. 

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

Hiện nay, các website to như Twitter, GoDaddy, Reddit, Bitbucket, GitHub, Stack Overflow, Speedtest.net, và các thành phầm do Amazon website Service hỗ trợ đều áp dụng HAProxy.

*

Các thuật ngữ, tư tưởng trong HAProxy

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

Access Control danh mục (ACL)

ACL được dùng để làm kiểm tra một vài điều kiện, đồng thời triển khai các hành động tiếp theo dựa vào công dụng kiểm tra (ví dụ ngăn một yêu thương cầu, lựa chọn 1 máy chủ). ACL cũng hỗ trợ việc thay đổi linh hoạt lưu lại lượng mạng phụ thuộc vào nhiều nguyên tố (ví dụ phụ thuộc vào đường dẫn).

Backend

Đây là tập hợp những máy công ty nhận các yêu mong được điều tiết. Những backend này được được định nghĩa khi thông số kỹ thuật HAProxy.

Có 2 loại thông số kỹ thuật phổ thay đổi được quan niệm trong backend:

- Thuật toán cân đối tải (bao có Round Robin, Least Connection, cùng IP Hash).

- list máy chủ, Cổng (đảm nhận việc Nhận, và xử lý những yêu cầu).

Backend đựng một hoặc các máy chủ. Lúc thêm nhiều máy chủ vào backend vẫn giúp nâng cấp tải, hiệu năng cũng giống như độ tin cẩn của dịch vụ. Sát bên đó, khi gồm một sever trong backend xẩy ra sự chũm thì những máy chủ khác sẽ đảm nhận việc chịu thiết lập cho sever này. 

Ví dụ:

backend web-backend

balance roundrobin

server web1 web1.yourdomain.com:80 check

vps web2 web2.yourdomain.com:80 check

backend blog-backend

balance roundrobin

mode http

hệ thống blog1 blog1.yourdomain.com:80 check

vps blog1 blog1.yourdomain.com:80 check

Trong đó:

- balance roundrobin: Là thuật toán cân đối tải, các yêu cầu sẽ được phân phối đến những máy chủ. Đây thiết yếu là phương pháp sử dụng khoác định.

- mode http: Là chỉ định proxy layer 7

Frontend

Frontend vào vai trò định nghĩa phương pháp mà các yêu ước được thay đổi tới backend. Giống như như backend, frontend cũng có thể có thư mục frontend để tư tưởng các thông số kỹ thuật frontend.

Cấu hình frontend bao gồm 3 yếu tố sau:

- Tập các add IP cùng Cổng (VD: 10.10.10.86:80, *:443).

- các ACL.

Xem thêm: Điện Cảm Là Gì Và Ý Nghĩa Của Trị Số Điện Cảm Là Gì, Ý Nghĩa Của Trị Số Điện Cảm Là Gì

những backend nhận, xử lý yêu cầu.
*

Các loại cân đối tải vào HAProxy

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

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

Đây là một trong kiến trúc dễ dàng nhất của quy trình triển khai web. 

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

*

2. Layer 4 Load Balancing

Để thăng bằng tải những request đến các máy chủ, bạn cũng có thể dùng cân đối 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 phối request bằng cách dựa vào IP, với Port.

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

Trong lấy ví dụ này, lúc request truy nã cập địa chỉ cửa hàng https://ktktdl.edu.vn/, HAProxy sẽ thực hiện điều tìm hiểu backend web-backend xử lý.

Lưu ý:

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

*

3. Layer 7 Load Balancing

Đây là một phương pháp tương đối tinh vi vì thăng bằng tải trên tầng layer 7 (Application layer – Tầng ứng dụng). Khi sử dụng cân bằng tải trên layer 7 sẽ giúp điều hướng những request đến các backend không giống nhau, bằng phương pháp dựa vào câu chữ request.

Chế độ thăng bằng tải này cho phép bạn thuận tiện triển khai nhiều máy chủ web hệ thống trên cùng một tên miền duy nhất.

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

*

Theo ví dụ, khi người dùng gửi yêu cầu truy vấn đến https://ktktdl.edu.vn/ thì HAProxy sẽ triển khai đ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://ktktdl.edu.vn/about/ thì HAProxy sẽ thực hiện điều hướng request mang đến web-2-backend.

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

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

roundrobin: Đây là thuật toán khoác định của HAProxy. Nó triển khai nhiệm vụ chuyển request đến sever theo lượt.  leastconn: Thuật toán vào vai trò chuyển các request đến sever có ít liên kết nhất.  source: Thuật toán chuyển những request cho máy chủ phụ thuộc việc hash IP của tín đồ dùng, nhằm bảo vệ 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ụ thương mại cân bởi tải HAProxy sử dụng nhằm mục đích phân phát hiện đầy đủ backend server đã chuẩn bị để xử lý các yêu mong truy cập. Đây là một kỹ thuật giúp tránh việc loại bỏ máy công ty khỏi backend một cách thủ công khi nó vẫn chưa sẵn sàng. Bằng cách thiết lập liên kết TCP đến máy chủ, Health check sẽ chất vấn được tính chuẩn bị sẵn sàng xử lý request của backend server.

Khi ko thể liên kết tới ngẫu nhiên máy nhà nào, Health check auto loại vứt nó khỏi backend, đồng thời toàn bộ các traffic những 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 ngôi trường hợp, toàn cỗ máy chủ ở trong backend xẩy ra sự cố, thương mại & dịch vụ sẽ gửi trạng thái không khả dụ (HAProxy hiển thị status code 500). Khi bao gồm một máy chủ thuộc backend được đưa từ trạng thái ko khả dụ sang sẵn sàng, thì thông tin này không thể hiển thị, với kết nối trở về bình thường.

Xem thêm: Meaning Of Boycott Là Gì ? Đặc Điểm Và Nguồn Gốc Câu Trả Lời Đúng Nhất!

*

So sánh HAProxy vs Nginx

Cả HAProxy với Nginx đều là một kênh dịch vụ cân bởi tải ổn định định, được không ít người sử dụng. HAProxy được cải tiến và phát triển để ship hàng cho mục đích cân bằng tải. Còn Nginx là một trong những webserver có khả năng hoạt động như bộ thăng bằng tải.

Giống nhau:

cung cấp HTTP, HTTPS, websocket. Cân đối tải HTTP, HTTPS chuyển động ổn định, cùng hiệu quả. Có khả năng xử lý liên kết 10k mà lại không phải điều chỉnh. Cho phép tùy chỉnh cấu hình định dạng của nhật ký. Khi muốn nhập nhật ký, bạn truy vấn Kiban/ Splunk/ Graylog.

Khác nhau:

HAProxy:

có thêm cân bằng tải TCP, TCP-SSL. Nhân tài health, điều kiện biến đổi dự chống linh hoạt hơn Nginx. Có bộ lưu trữ đệm cơ bản. Mang đến xem cụ thể trạng thái máy chủ, các yêu ước hoạt động. Có tác dụng xuất số liệu, tích phù hợp các chiến thuật giám sát. Hiệu suất vận động cao, phù hợp sử dụng để xử lý liên kết 100k, bối cảnh 40GbE. Là ứng dụng miễn phí, tất cả mã mối cung cấp mở. Nhà cách tân và phát triển thu tổn phí bằng bài toán bán đồ vật phần cứng có setup sẵn HAProxy.

Nginx:

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

*