Thứ Năm, 9 tháng 2, 2023

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

Nội dung bài viết [ẩn]

  • Cài đặt và triển khai HAProxy load balancing server
    • 1. HAproxy là gì?
    • 2. Thành phần và cấu trúc của HAproxy
      • 2.1 Cấu trúc của HAproxy
      • 2.2 Các thành phần chính của HAproxy
    • 3. Triển khai load balancing server bằng HAproxy
      • 3.1 Mô hình triển khai
      • 3.2 Cài đặt HAProxy
      • 3.3 Cấu hình cơ bản load balancing server bằng HAproxy
        • 3.3.1 Cài đặt và cấu hình SSL
        • 3.3.2 Mẫu file cấu hình
        • 3.3.3 Kiểm tra

    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.pem và privkey.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.pem và privkey.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ê.

    • Ngoài ra bạn có thể tham khảo qua bài viết cài đặt và triển khai Nginx load balancing server.

    Chúc các bạn thành công

    =============================
    * KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
    * CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
    * Chi tiết tham khảo:
    https://bit.ly/oaz_w
    =============================
    KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
    📧 Mail: binhoracle@gmail.com
    ☎️ Mobile/Zalo: 0902912888
    👨 Facebook: https://www.facebook.com/BinhOracleMaster
    👨 Inbox Messenger: https://m.me/101036604657441 (profile)
    👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
    👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
    👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
    👨 Website: https://www.tranvanbinh.vn
    👨 Blogger: https://tranvanbinhmaster.blogspot.com
    🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
    👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
    👨 Linkin: https://www.linkedin.com/in/binhoracle
    👨 Twitter: https://twitter.com/binhoracle
    👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

    =============================
    oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

    ĐỌC NHIỀU

    Trần Văn Bình - Oracle Database Master