HAPROXY LÀ GÌ

Tổng quan

HAProxy viết tắt của High Availability Proxy, là quy định mã nguồn mngơi nghỉ lừng danh vận dụng mang lại phương án thăng bằng download TCP/HTTPhường tương tự như phương án máy chủ Proxy (Proxy Server). HAProxy hoàn toàn có thể điều khiển xe trên các từng trường Linux, Solaris, FreeBSD. Công dụng phổ biến duy nhất của HAProxy là cải thiện tính năng, tăng cường độ tin cẩn của hệ thống sever bằng phương pháp phân pân hận cân nặng các bước bên trên những sever (như Web, App, đại lý dữ liệu). HAProxy hiện nay sẽ cùng đang rất được áp dụng vị nhiều trang web bự nlỗi GoDaddy, GitHub, Bitbucket, Staông chồng Overflow, Reddit, Speedkiểm tra.net, Twitter và trong vô số nhiều thành phầm cung ứng bởi Amazon Web Service.

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

Thuật ngữ vào HAProxy

Có không ít thuật ngữ với tư tưởng được áp dụng trong HAProxy lúc nối về cân đối download (Load balancing) và sever. Ở đây, tôi đã tập trung vào những định nghĩa thông dụng được áp dụng nhiều vào HAProxy

Access Control List (ACL)

Access Control List (ACL) áp dụng để đánh giá một trong những ĐK cùng thực hiện hành vi tiếp theo sau dựa vào hiệu quả kiểm tra(VD lựa chọn một VPS, chặn một request). Sử dụng ACL chất nhận được thay đổi lưu lại lượng mạng linh hoạt dựa trên các yếu tố khác nhau (VD: dựa theo đường truyền, dựa trên con số liên kết tới backend)

Backend

Backend là tập các server dìm những request đã được thay đổi (HAProxy điều tiết những request cho tới những backend). Các Backover được khái niệm vào mục backover Khi cấu hình HAProxy.

2 thông số kỹ thuật thường được định nghĩa vào mục backend:

Thuật toán thăng bằng cài đặt (Round Robin, Least Connection, IP Hash) Danh sách những Server, Port (Nhận, cách xử trí request)

Backkết thúc hoàn toàn có thể chứa một hoặc nhiều VPS. Việc thêm nhiều hệ thống vào backend vẫn nâng cấp download, hiệu năng, tăng cường độ tin cẩn dịch vụ. Và khi một hệ thống trực thuộc backend ko khả dụ, những server không giống trực thuộc backkết thúc đang Chịu tải rứa đến hệ thống xảy ra sự việc.

lấy một ví dụ minc họa


backkết thúc web-backover balance roundrobin VPS web1 web1.yourdomain.com:80 check server web2 web2.yourtên miền.com:80 checkbackend i-google-map.com-backover balance roundrobin mode http server i-google-map.com1 i-google-map.com1.yourtên miền.com:80 kiểm tra server i-google-map.com1 i-google-map.com1.yourdomain.com:80 check
balance roundrobin chỉ định và hướng dẫn thuật toán thù cân đối tải: các Request phân păn năn tuần tự tới các VPS, đó cũng là thủ tục được sử dụng khoác định.

mode http hướng dẫn và chỉ định proxy layer 7 sẽ được sử dụng

Frontend

Frontover khái niệm cách các request thay đổi tới backover. Các cấu hình Frontover được tư tưởng trong mục frontkết thúc khi thông số kỹ thuật HAProxy.

Các thông số kỹ thuật frontend bao gồm các thành phần:

Tập các IP. và port (VD: 10.10.10.86:80, *:443) Các ACL Các backkết thúc dấn, xử lý request.

Các nhiều loại thăng bằng tải

Không tất cả thăng bằng tải

Kiến trúc dễ dàng nhất lúc thực hiện áp dụng Web

*

Trong ví dụ, người tiêu dùng đã liên kết thẳng tới WebVPS (https://i-google-map.com/), và ko sử dụng hình thức cân bằng mua. Nếu web VPS xẩy ra vụ việc, người dùng sẽ không thể kết nối tới Web được nữa. Và nếu vào ngôi trường hợp không ít người dân thuộc truy cập, webVPS có thể không đáp ứng nhu cầu được các request, dẫn mang lại trải nhiệm sử dụng vẫn sụt giảm.

Xem thêm: Lão Đại Gia Lê Ân Là Ai - Cuộc Đời Chìm Nổi Của Đại Gia Lê Ân

Layer 4 Load Balancing

Cách dễ dàng và đơn giản tốt nhất để cân bằng download các request cho tới nhiều hệ thống là thực hiện thăng bằng cài đặt nút layer 4 TCPhường. (Tầng giao vận - transport layer). Pmùi hương pháp đang điều hướng những request dựa trên IP với Port. Theo ví dụ, trường hợp request tới liên can https://i-google-map.com/ thì request sẽ tiến hành điều nhắm đến backover web-backkết thúc nhằm giải pháp xử lý.

Lưu ý:

Hai máy chủ website đề nghị giao hàng câu chữ tương tự nhau. Nếu ko, người tiêu dùng vẫn dấn báo cáo không thống tuyệt nhất (Tùy theo thuật tân oán cân bằng tải). Nên sử dụng tầm thường database giữ lại 2 website server.

*

Layer 7 Load Balancing

Phương thơm pháp tinh vi rộng, cân bằng download áp dụng tại tầng layer 7 nút request (Tầng ứng dụng - Application layer). Sử dụng bộ đề nghị bởi trên layer 7 vẫn điều hướng request tới các backend khác nhau dựa vào ngôn từ của request.

Chế độ này có thể chấp nhận được chúng ta có thể xúc tiến nhiều web server khác biệt trên cùng 1 tên miền.

*

Trong hình, giả dụ người dùng gửi request cho tới ‘https://i-google-map.com/’, haproxy sẽ điều hướng request tới 1, còn khi người dùng request cho tới https://i-google-map.com/about/ haproxy vẫn điều hường request tới web-2-backend

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

Thuật toán cân đối tải được áp dụng nhắm tư tưởng các request được điều hướng về những server bên trong backend vào quá trình load balancing. HAProxy cung ứng một vài thuật tân oán mang định:

roundrobin: những request sẽ tiến hành đưa đến hệ thống theo lượt. Đây là thuật toán khoác định được thực hiện cho HAProxy leastconn: các request sẽ được gửi đến hệ thống như thế nào tất cả ít kết nối mang lại nó độc nhất vô nhị source: những request được đưa mang đến server bởi những hash của IP người tiêu dùng. Pmùi hương pháp này giúp người tiêu dùng bảo đảm an toàn luôn luôn kết nối tới một server

Sticky Sessions

Health Check

HAProxy thực hiện health check nhằm vạc hiện tại các backover server sẵn sàng chuẩn bị xử lý request. Kỹ thuật này vẫn rời bài toán sa thải hệ thống khỏi backkết thúc bằng tay Khi backover hệ thống không sẵn sàng. health check đang cố gắnh cấu hình thiết lập liên kết TCPhường cho tới hệ thống để soát sổ backover hệ thống có sẵn sàng chuẩn bị xử lý request.

Nếu health kiểm tra chẳng thể kết nối cho tới hệ thống, nó đã tự động hóa loại trừ server khởi backend, các traffic tới sẽ không còn được forward cho tới server cho tới lúc nó rất có thể tiến hành được health check. Nếu tất cả VPS ở trong backover đầy đủ xảy sự việc, dịch vụ sẽ trlàm việc trên ko khả dụ (trả lại status code 500) cho đến khi một hệ thống trực thuộc backkết thúc từ bỏ tinh thần ko khả dụ gửi lịch sự tinh thần sẵn sàng chuẩn bị.

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/i-google-map.com/load-balancing-affinity-persistence-sticky-sessions-what-you-need-to-know/