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.
Tóm Tắt
HAProxy là gì ?
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 gồm có :
ACL
ACL – Access Control List là list trấn áp truy vấn được sử dụng để xem xét những điều kiện kèm theo và thực thi thực thi hành vi dựa vào hiệu quả xem xét đó. Ngoài ra, ACL còn được cho phép những lưu lượng mạng hoàn toàn có thể chuyển dời linh động 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 Open trong quy trình thông số kỹ thuật HAProxy gồm có những sever nhận nhu yếu được chuyển tiếp. Về cơ bản, Backend có hai thông số kỹ thuật phổ cập đó là Load Balancing – thuật toán cân đối tải ; list sever và cổng. Mỗi Backend hoàn toàn có thể chứa nhiều sever giúp cải tổ hiệu suất tải và tăng độ đáng tin cậy của những dịch vụ. Đồng thời, nếu có một sever trong Backend xảy ra sự cố thì hàng loạt máy chủ còn lại sẽ đảm nhiệm việc chịu tải cho sever 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:
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 Load balancing còn mode http
là chỉ định Proxy L7.
Frontend
Trong đó, là thuật toán Load balancing cònlà chỉ định Proxy L7 .Frontend là giao diện người dùng được sử dụng để xác lập những nhu yếu được chuyển tiếp tới Backend. Ngoài ra, Frontend cũng có thư mục Frontend để định nghĩa những thông số kỹ thuật 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 :Từ hình ảnh trên cho thấy người dùng được liên kết trực tiếp với Web Server trải qua Internet đến yourdomain.com mà không có Load Balancing. Tuy nhiên, có một yếu tố so với quy mô này đó là nếu như Web Server gặp sự cố thì người dùng sẽ không hề triển khai bất kể liên kết nào với nó. Trong trường hợp khác, nếu có quá nhiều lượt truy vấn cùng một lúc thì Web Server sẽ không hề giải quyết và xử lý tải gây ra thực trạng lag, chậm hoặc mất liên kết .
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 :Khi người dùng truy vấn vào Load Balancing, nó sẽ chuyển tiếp nhu yếu đó đến Web-Backend của Backend Server được liên kết trên sever cơ sở tài liệu. Những Backend Server được chọn sẽ phản hồi trực tiếp nhu yếu của người dùng .
Load Balancing L7
Load Balancing L7 là lớp ứng dụng được cho phép chuyển tiếp những nhu yếu đến nhiều Backend Server khác nhau dựa trên nội dung mong ước. Ngoài ra, với chính sách này người dùng hoàn toàn có thể chạy nhiều sever ứ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 :Trong sơ đồ trên, nếu người dùng nhu yếu một yourdomain.com/blog thì HAProxy sẽ chuyển tiếp nhu yếu đó đến Blog Backend. Các nhu yếu khác sẽ được chuyển tiếp đến web-backend trên một ứng dụng khác. Trong đó, cả hai ứng dụng Backend này đều sử dụng cùng một sever cơ sở tài liệu .
Ví dụ: Một đoạn mã cấu hình trong frontend:
frontend http bind *:80 mode http acl url_blog path_beg /blog use_backend blog-backend if url_blog default_backend web-backend
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 đếnblog-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 đếnweb-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 tương quan đến HAProxy, hãy để lại ở bên phản hồi bên dưới, BKHOST sẽ vấn đáp bạn trong thời hạn sớm nhất .P / s : Bạn cũng hoàn toàn có thể truy vấn vào Blog của BKHOST để đọc thêm những bài viết san sẻ kiến thức và kỹ năng về lập trình, quản trị mạng, website, domain, hosting, vps, server, email, … Chúc bạn thành công xuất sắc .
- haproxy load balancer
- ha proxy là gì
Source: https://final-blade.com
Category : Kiến thức Internet