Blog

[Hướng dẫn] Dùng HAProxy để cài đặt và cấu hình cân bằng tải theo 4 bước cơ bản

HAProxy thường được nhắc đến như là một công cụ cân bằng tải với công dụng giúp các Webmaster phân giải proxy được sử dụng phổ biến trên thế giới. Với khả năng xử lý nhiều loại lưu lượng như TCP, UDP, FTP, RDP, WebSockets, database connections, HAProxy được rất nhiều quản trị viên Website sử dụng.

Vậy nên, trong bài viết hôm nay, Gdata sẽ hướng dẫn bạn đọc cách cài đặt và cấu hình cân bằng tải theo 4 bước cơ bản cho Web Server bên trong.

Gdata - [Hướng dẫn] Cài đặt và cấu hình cân bằng tải với HAProxy

1. Cách cài đặt HAProxy

Trong bài viết này, Gdata sẽ sử dụng Centos 8 làm ví dụ, các câu lệnh để cài đặt cân bằng tải HAProxy như sau:

# sudo yum update -y

# sudo yum install -y haproxy

   – Sau khi cài đặt xong, bạn đọc thực hiện việc bật dịch vụ cân bằng tải tự động với câu lệnh sau: 

# sudo systemctl enable haproxy

👉 Nhờ câu lệnh này, mỗi khi hệ thống khởi động, HAProxy sẽ được tự động khởi chạy cùng với hệ thống máy chủ. 

   – Sau khi đã cài đặt và bật dịch vụ, bạn có thể kiểm tra thử phiên bản xem dịch vụ đã được bật hay chưa với câu lệnh sau:

# haproxy -v

   – Nếu dịch vụ đã bật, bạn sẽ nhận được thông báo như bên dưới:

HA-Proxy version 2.2.4-b16390-23 2020/10/09 – https://haproxy.org/

2. Tạo backend server

   – Để thử nghiệm cân bằng tải, Gdata sử dụng Ncat để tạo các Web Server đơn giản với câu lệnh sau: 

# sudo yum install nc -y

   – Do mặc định SELinux được bật, cho nên bạn cần phải mở port 8404 để truy cập được website thống kê lưu lượng:

# sudo dnf install policycoreutils-python-utils

# sudo semanage port -a -t http_port_t  -p tcp 8404

# sudo semanage port -a -t http_port_t  -p tcp 10080;

# sudo semanage port -a -t http_port_t  -p tcp 10081;

# sudo semanage port -a -t http_port_t  -p tcp 10082;

   – Tiếp theo, bạn đọc cần phải tạo 2 Web Servers và một API server:

while true ;

do

nc -l -p 10080 -c ‘echo -e “HTTP/1.1 200 OK\n\n This is Gdata Server ONE”‘ ;

done &

while true ;

do

nc -l -p 10081 -c ‘echo -e “HTTP/1.1 200 OK\n\n This is Gdata Server TWO”‘ ;

done &

while true ;

do

nc -l -p 10082 -c ‘echo -e “HTTP/1.1 200 OK\nContent-Type: application/json\n\n { \”Message\” :\”Hello, Gdata!\” }”‘ ;

done &

3. Cấu hình HAProxy

   – File cấu hình của công cụ cân bằng tải là /etc/haproxy/haproxy.cfg, bạn hãy mở file đó và thực hiện chỉnh sửa như bên dưới:

global

    log         127.0.0.1 local2

    user        haproxy

    group       haproxy

defaults 

    mode                    http

    log                     global

    option                  httplog

frontend main

    bind *:80

    default_backend web

    use_backend api if { path_beg -i /api/ }

    #————————-

    # SSL termination – HAProxy handles the encryption.

    #    To use it, put your PEM file in /etc/haproxy/certs  

    #    then edit and uncomment the bind line (75)

    #————————-

    # bind *:443 ssl crt /etc/haproxy/certs/haproxy.pem ssl-min-ver TLSv1.2

    # redirect scheme https if !{ ssl_fc }

#—————————–

# Enable stats at http://test.local:8404/stats

#—————————–

frontend stats

    bind *:8404

    stats enable

    stats uri /stats

#—————————–

# round robin balancing between the various backends

#—————————–

backend web

    server web1 127.0.0.1:10080 check

    server web2 127.0.0.1:10081 check

#—————————–

# API backend for serving up API content

#—————————–

backend api

    server api1 127.0.0.1:10082 check

   – Như trong đoạn cấu hình trên, Gdata đã tạo một frontend trên port 80 của Server và Backend Web gồm 2 Web Server lắng nghe trên port 10080 và 10081:

frontend main

     bind *:80

default_backend web

backend web

    server web1 127.0.0.1:10080 check

    server web2 127.0.0.1:10081 check

   – Với backend này, lưu lượng đi vào từ ngoài mạng thông qua cân bằng tải sẽ được phân phối đều giữa 2 Web Server. Việc này sẽ đảm bảo chắc chắn không xảy ra trường hợp phải xử lý quá tải lưu lượng trên một Web Server. 

   – Ngoài ra, trên frontend có một cấu hình điều hướng lưu lượng tới backend api:

# use_backend api if { path_beg -i /api/ }

  👉 Với cấu hình này, khi người dùng nhập URL trên trình duyệt vào /api/ thì lưu lượng sẽ được điều hướng tới backend api.

4. Thống kê lưu lượng

   – Trong đoạn cấu hình bên trên, Gdata đã có đoạn hướng dẫn chỉ định cách kích hoạt web thống kê lưu lượng:

frontend stats

    bind *:8404

    stats uri /stats

    stats enable

   Như vậy, bạn đọc có thể truy cập vào đường dẫn http://YOUR-IP-ADDRESS:8404/stats để xem thống kê lưu lượng của cân bằng tải.

Thông tin liên hệ

Trên đây là hướng dẫn cách cài đặt và cấu hình cân bằng tải theo 4 bước cơ bản nhất. Nếu bạn đọc có bất kỳ câu hỏi nào với Gdata, vui lòng liên hệ với chúng tôi qua thông tin dưới đây:

Hotline: 0904 299 668
Tổng đài: 1800 4814 – Phím 2
Email: lienhe@gdata.com.vn
Website: www.gdata.com.vn
– LinkedIn: https://www.linkedin.com/company/gdata-system-solution
Facebook: https://www.facebook.com/gdata.com.vn

CÔNG TY CP DỮ LIỆU TOÀN CẦU

Địa chỉ: Tầng 03 Tòa Lạc Hồng/ 27 Lê Văn Lương, Thanh Xuân, Hà Nội

Chương trình ưu đãi mới nhất tại GDATA – Cloud Server giá rẻ!

Cloud Server giá rẻ tại Gdata

  • 22/06/2023
  • 14955 Lượt xem
avatar_author

Tác giả: admin

  1. Đăng ký dùng thử
  2. Zalo chat
  3. Gọi miễn phí