Cài đặt và triển khai HAProxy load balancing server

Cài đặt và triển khai HAProxy load balancing server
Read Time:5 Minute, 52 Second

Cài đặt và triển khai HAProxy load balancing server

Trong bài viết này mình sẽ cùng các bạn tìm hiểu HAProxy là gì. Cách cài đặt và triển khai hệ thống cơ bản HAProxy load balancing server.

1. HAproxy là gì?

HAProxy viết tắt của High Availability Proxy, là công cụ mã nguồn mở nổi tiếng được phát triển trên hệ điều hành Linux. Ứng dụng cho giải pháp cân bằng tải TCP/HTTP cũng như giải pháp máy chủ Proxy (Proxy Server).

– Công dụng phổ biến nhất của HAProxy là cải thiện hiệu năng, tăng độ tin cậy của hệ thống máy chủ bằng cách phân phối khối lượng công việc trên nhiều máy chủ (như Web, App, cơ sở dữ liệu,…).

– HAProxy hiện đã và đang được sử dụng bởi nhiều website lớn như GoDaddy, GitHub, Stack Overflow, Twitter và trong nhiều sản phẩm cung cấp bởi Amazon Web Service.

2. Thành phần và cấu trúc của HAproxy

2.1 Cấu trúc của HAproxy

– File cấu hình haproxy.cfg là nơi lưu trữ các cấu hình cho hệ thống HAproxy.

– Khi chạy chương trình cân bằng tải, máy chủ HAproxy sẽ đọc file cấu hình này và thực hiệu điều khiển hệ thống cân bằng tải.

– Đây cũng là nơi quản trị viện có thể cấu hình cho hệ thống cân bằng tải, bằng cách thay đổi các tham số được HAproxy quy định.

– Cấu hình của Haprox thường gồm 4 phần chính: global, defaults, fontend và backend.

– Các thành phần này sẽ định nghĩa cách máy chủ HAproxy tiếp nhận, xử lý yêu cầu, chọn máy chủ tiếp nhận yêu cầu và chuyển tiếp.

2.2 Các thành phần chính của HAproxy

Global nằm ở phần đầu của file cấu hình haproxy.cfg

+ Quy định các thiết lập bảo mật, điều chỉnh hiệu năng… cho toàn hệ thống HAproxy.

+ Một số tham số quan trọng được đặt trong global như số lượng kết nối tối đa (maxconn), đường dẫn file log, số tiến trình…

– Default chứa các cấu hình được thiết lập áp dụng chung cho cả phần frontend và backend trong file cấu hình.

+ mode: Định nghĩa HAproxy sẽ sử dụng TCP proxy hay HTTP proxy.

+ timeout: Thời chờ phản hồi của client, server,…

– Frontend chứa thiết lập trong phần frontend định nghĩa địa chỉ IP và port mà client có thể kết nối tới.

+ bind: IP (hostname) và Port HAProxy sẽ lắng nghe để mở kết nối.

IP có thể bind tất cả địa chỉ sẵn có hoặc chỉ 1 địa chỉ duy nhất, port có thể là một port hoặc nhiều port (1 khoảng hoặc 1 list).

+ http-request redirect: Phản hỏi tới client với đường dẫn khác. Ứng dụng khi client sử dụng http và phản hồi từ HAProxy là https, điều hướng người dùng sang giao thức https.

+ stats : Khai báo đường dẫn trang thống kê, username, password, thời gian refresh trang thống kê,…

– Backend các thiết lập trong phần backend định nghĩa tập server sẽ được cân bằng tải khi có các kết nối tới.

+ balance: Đây chính là các thuật toán cân bằng tải.

+ server: Tùy chọn quan trọng nhất trong backend section. Tùy chọn đi kèm bao gồm tên, id, port. Có thể dùng domain thay cho IP.

3. Triển khai load balancing server bằng HAproxy

3.1 Mô hình triển khai

– HAproxy server: 10.10.10.100

– Server01: 10.10.10.10

– Server02: 10.10.10.15

3.2 Cài đặt HAProxy

– Tiến hành cài đặt HAProxy theo các phiên bản Os

+ Đối với CentOs7/ Redhat7/ Oracle Linux7: 
# yum -y install haproxy
+ Đối với CentOs8/ Redhat8/ Oracle Linux8:
# dnf -y install haproxy
+ Đối với Debian:
# apt -y install haproxy
+ Đối với Ubuntu:
# apt-get install haproxy

– Cho phép HAProxy tạo kết nối mạng

# setsebool httpd_can_network_connect on -P

– Tiến hành start HAProxy.

# service haproxy start

– Kích hoạt HAProxy.

# systemctl enable haproxy

3.3 Cấu hình cơ bản load balancing server bằng HAproxy

– Để sử dụng được file cấu hình dưới dây bạn cần tiến hành cấu hình và cài đặt thêm các yêu cầu sau đây

+ Để client truy cập sử dụng SSL bạn có thể sử dụng SSL bạn mua từ các nhà cung cấp khác hoặc sử dụng SSL miễn phi bằng cách cài đặt thêm SSL Let’s Encrypt.

3.3.1 Cài đặt và cấu hình SSL

Để sử phía Client truy cập sử dụng giao thức SSL ta tiến hành như sau:

– Sử dụng SSL free Let’s Encrypt

# yum -y install certbot

+ Tiến hành tạo SSL Let’s Encrypt cho domain.

# certbot certonly --standalone -d <domain> --staple-ocsp -m admin@<domain> --agree-tos

+ Đường đẫn lưu trữ mặc định: /etc/letsencrypt/live/<domain>/

+ Tiếp tục kết hợp fullchain.pemprivkey.pem để haproxy sử dụng.

Vi dụ: DOMAIN=’example.com’ thành DOMAIN=’weblogic.system.info.vn’

# DOMAIN='example.com' sudo -E bash -c 'cat /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/letsencrypt/live/$DOMAIN/privkey.pem > /etc/haproxy/certs/$DOMAIN.pem'

– Đối với các bạn sử dụng SSL của các nhà cung cấp khác cũng tiến thành kết hợp file fullchain.pemprivkey.pem để haproxy sử dụng.

3.3.2 Mẫu file cấu hình

– Tiến hành backup file cấu hình mặc định

# mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.org

– Tiến hành Edit file cấu hình mới

# vi /etc/haproxy/haproxy.cfg
global
   log 127.0.0.1 local2 info 
   chroot /var/lib/haproxy
   pidfile /var/run/haproxy.pid
   # max per-process number of connections
   maxconn 512
   user haproxy
   group haproxy
   daemon

defaults
   mode http
   log global
   option httplog
   timeout connect 10s
   timeout client 30s
   timeout server 30s

frontend http-in
   # listen 80 and 443
   bind *:80
   bind weblogic.system.info.vn:443 ssl crt /etc/pki/tls/certs/weblogic.system.info.vn.pem
   default_backend backend_servers
   option forwardfor
   stats enable
   # auth info for statistics site
   stats auth admin:adminpassword
   stats hide-version
   stats show-node
   stats refresh 60s
    # statistics reports' URI
   stats uri /haproxy?stats

backend backend_servers
   # balance with roundrobin
   balance roundrobin
   # define backend servers
   server weblogic01 10.10.10.10:7001 check
   server weblogic02 10.10.10.15:7001 check

3.3.3 Kiểm tra

– Khởi động lại HAProxy

# service haproxy restart

– Đường đẫn truy cập phía client.

+ HTTP

Link: http://weblogic.system.info.vn
or
Link: http://10.10.10.100

+ HTTPS

https://weblogic.system.info.vn

Thuật toán roundrobin: các request sẽ được chuyển đến các server theo lượt được định nghĩa ở trên.

– Đường đẫn trang thống kê có đạng

Link: https://weblogic.system.info.vn/haproxy?stats 
or 
Link: http://10.10.10.100/haproxy?stats

– Thông tin đăng nhập được cấu hình ở trên là

+ Username: admin

+ Password: adminpassword

Đây là giao diện trang thống kê.

Kiến Thức System chúc các bạn thành công!

✏️ Tác giả bài viết

Admin KTSYSTEM

Xin Chào mình là quản trị Viên Website system.info.vn Mình rất thích tìm hiểu về công nghệ mới, học hỏi và tìm tòi nghiên cứu về quản trị và bảo mật về hệ thống.
administrator
Happy
Happy
64 %
Sad
Sad
9 %
Excited
Excited
9 %
Sleepy
Sleepy
0 %
Angry
Angry
9 %
Surprise
Surprise
9 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *