Tổng quan

HAProxy viết tắt của High Availability Proxy, là vẻ ngoài mã mối cung cấp mở danh tiếng ứng dụng cho chiến thuật cân bằng tải TCP/HTTP cũng như phương án máy chủ Proxy (Proxy Server). HAProxy hoàn toàn có thể chạy trên những mỗi trường Linux, Solaris, FreeBSD. Chức năng phổ trở thành nhất của HAProxy là cải thiện hiệu năng, tăng mức độ tin cậy của hệ thống máy chủ bằng phương pháp phân phối khối lượng quá trình trên nhiều sever (như Web, App, cửa hàng dữ liệu). HAProxy hiện sẽ và đang được sử dụng vì nhiều website lớn như GoDaddy, GitHub, Bitbucket, Stack Overflow, Reddit, Speedtest.net, Twitter và trong vô số nhiều sản phẩm cung cấp bởi Amazon website Service.

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

Thuật ngữ vào HAProxy

Có không hề ít thuật ngữ và định nghĩa được thực hiện trong HAProxy khi nối về cân đối tải (Load balancing) cùng máy chủ. Ở đây, tôi sẽ triệu tập vào các khái niệm phổ biến được sử dụng nhiều vào HAProxy

Access Control các mục (ACL)

Access Control danh mục (ACL) thực hiện để kiểm tra một vài điều kiện cùng thực hiện hành động tiếp theo dựa trên công dụng kiểm tra(VD lựa lựa chọn 1 server, chặn một request). Sử dụng ACL chất nhận được điều tiết lưu lại lượng mạng linh hoạt dựa trên những yếu tố không giống nhau (VD: dựa theo đường dẫn, dựa theo con số kết nối tới backend)

Backend

Backend là tập các server nhận những request đã làm được điều ngày tiết (HAProxy điều tiết những request tới những backend). Các Backend được có mang trong mục backend khi thông số kỹ thuật HAProxy.

2 cấu hình thường được có mang trong mục backend:

Thuật toán thăng bằng tải (Round Robin, Least Connection, IP Hash) Danh sách những Server, Port (Nhận, giải pháp xử lý request)

Backend hoàn toàn có thể chứa một hoặc các server. Việc thêm nhiều server vào backend sẽ nâng cao tải, hiệu năng, tăng cường mức độ tin cậy dịch vụ. Và lúc một server trực thuộc backend ko khả dụ, các server không giống thuộc backend đang chịu download thay đến server xẩy ra vấn đề.

Ví dụ minh họa


backend web-backend balance roundrobin server web1 web1.yourdomain.com:80 check server web2 web2.yourdomain.com:80 checkbackend movingthenationforward.com-backend balance roundrobin mode http vps movingthenationforward.com1 movingthenationforward.com1.yourdomain.com:80 check server movingthenationforward.com1 movingthenationforward.com1.yourdomain.com:80 check
balance roundrobin chỉ định và hướng dẫn thuật toán cân đối tải: các Request triển lẵm tuần trường đoản cú tới những server, đây cũng là cách làm được áp dụng mặc định.

mode http hướng đẫn proxy layer 7 sẽ được sử dụng

Frontend

Frontend khái niệm cách những request thay đổi tới backend. Các cấu hình Frontend được khái niệm trong mục frontend khi thông số kỹ thuật HAProxy.

Các cấu hình frontend bao gồm các thành phần:

Tập những IP cùng port (VD: 10.10.10.86:80, *:443) những ACL các backend nhận, cách xử trí request.

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

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

Kiến trúc đơn giản nhất khi thực thi ứng dụng Web

*

Trong ví dụ, người dùng sẽ liên kết trực tiếp tới Webserver (https://movingthenationforward.com/), cùng không sử dụng dịch vụ thương mại cân bởi tải. Trường hợp web server xảy ra vấn đề, người dùng sẽ ko thể liên kết tới web được nữa. Và nếu trong trường hợp không ít người cùng truy hỏi cập, webserver hoàn toàn có thể không đáp ứng nhu cầu được các request, dẫn đến trải nhiệm thực hiện sẽ sút xuống.

Layer 4 Load Balancing

Cách dễ dàng nhất để cân đối tải những request tới nhiều server là sử dụng cân bằng tải nấc layer 4 TCP (Tầng luân chuyển - transport layer). Phương thức sẽ điều hướng những request dựa vào IP và Port. Theo ví dụ, giả dụ request tới showroom https://movingthenationforward.com/ thì request sẽ được điều hướng đến backend web-backend để xử lý.

Lưu ý:

Hai sever web cần giao hàng nội dung như thể nhau. Trường hợp không, người dùng sẽ nhận thông tin không thống duy nhất (Tùy theo thuật toán thăng bằng tải). Nên thực hiện chung database giữ lại 2 web server.

*

Layer 7 Load Balancing

Phương pháp phức tạp hơn, cân đối tải sử dụng tại tầng layer 7 nút request (Tầng vận dụng - Application layer). Sử dụng bộ cần bởi tại layer 7 sẽ điều hướng request tới những backend khác nhau dựa trên nội dung của request.

Chế độ này đến phép bạn có thể triển khai những web server không giống nhau trên thuộc 1 domain.

*

Trong hình, nếu người dùng gửi request cho tới ‘https://movingthenationforward.com/’, haproxy sẽ điều phối request cho tới 1, còn khi người dùng request cho tới https://movingthenationforward.com/about/ haproxy đã điều hường request cho tới web-2-backend

Các thuật toán thăng bằng tải

Thuật toán cân bằng tải được sử dụng nhắm định nghĩa các request được điều hướng về các server bên trong backend trong quá trình load balancing. HAProxy hỗ trợ một số thuật toán mặc định:

roundrobin: các request sẽ tiến hành chuyển đến server theo lượt. Đây là thuật toán mang định được sử dụng cho HAProxy leastconn: các request sẽ được chuyển đến server nào gồm ít kết nối đến nó độc nhất source: những request được chuyển đến server bằng các hash của IP fan dùng. Phương thức này giúp tín đồ dùng đảm bảo luôn liên kết tới một server

Sticky Sessions

Health Check

HAProxy sử dụng health kiểm tra để phân phát hiện các backend server sẵn sàng chuẩn bị xử lý request. Kỹ thuật này đã tránh việc loại bỏ server ngoài backend thủ công bằng tay khi backend hệ thống không sẵn sàng. Health kiểm tra sẽ ráng gắnh tùy chỉnh thiết lập kết nối TCP tới hệ thống để bình chọn backend vps có sẵn sàng chuẩn bị xử lý request.

Xem thêm: Nghĩa Của Từ Diplomatic Là Gì, Diplomatic Translation Into Vietnamese

Nếu health check không thể liên kết tới server, nó sẽ tự động loại quăng quật server khởi backend, những traffic tới sẽ không còn được forward tới server cho đến khi nó hoàn toàn có thể thực hiện tại được health check. Nếu toàn bộ server nằm trong backend hồ hết xảy vấn đề, dịch vụ thương mại sẽ trở trên không khả dụ (trả lại status code 500) cho tới khi 1 server thuộc backend trường đoản cú trạng thái ko khả dụ đưa sang tâm lý sẵn sàng.

Nguồn

https://www.digitalocean.com/community/tutorials/an-introduction-to-haproxy-and-load-balancing-concepts

https://viblo.asia/p/huong-dan-su-dung-haproxy-cho-load-balancing-ung-dung-4P856jp95Y3

https://www.haproxy.com/movingthenationforward.com/load-balancing-affinity-persistence-sticky-sessions-what-you-need-to-know/