HAProxy Cheat Sheet: Hướng dẫn nhanh và đầy đủ cho quản trị viên

HAProxy (High Availability Proxy) là một công cụ cân bằng tải và proxy mã nguồn mở, phổ biến trong việc xây dựng các hệ thống phân tán với độ sẵn sàng cao.

Bài viết này tổng hợp các lệnh, cấu hình, và mẹo sử dụng HAProxy hiệu quả nhất.


1. HAProxy là gì?

HAProxy là một phần mềm:

  • Cân bằng tải (Load Balancer): Phân phối lưu lượng mạng đến nhiều server backend.

  • Proxy ngược (Reverse Proxy): Đóng vai trò trung gian giữa client và server.

  • Được sử dụng để cải thiện hiệu năng, bảo mật và độ tin cậy của hệ thống.


2. Cài đặt HAProxy

Cài đặt trên Ubuntu/Debian

sudo apt update
sudo apt install haproxy

Kiểm tra phiên bản

haproxy -v

Khởi động và dừng HAProxy


3. Cấu trúc tệp cấu hình HAProxy

File cấu hình mặc định của HAProxy thường nằm ở:

Cấu trúc file gồm 4 phần chính:

  1. Global: Các cài đặt toàn cục (log, số lượng kết nối tối đa).

  2. Defaults: Cấu hình mặc định cho các proxy.

  3. Frontend: Giao diện tiếp nhận kết nối từ client.

  4. Backend: Server phía sau xử lý yêu cầu từ frontend.


4. Các Lệnh HAProxy CLI

Lệnh

Chức năng

haproxy -f /path/to/config

Chạy HAProxy với tệp cấu hình cụ thể.

haproxy -c -f /path/to/config

Kiểm tra tính hợp lệ của file cấu hình.

haproxy -v

Hiển thị phiên bản của HAProxy.

haproxy -sf <pid>

Reload HAProxy mà không làm gián đoạn dịch vụ.


5. Ví dụ Cấu hình HAProxy

Cân bằng tải HTTP cơ bản

Cân bằng tải HTTPS

Cân bằng tải theo IP Hash


6. Các Kiểu Cân Bằng Tải

Kiểu Cân Bằng

Mô Tả

roundrobin

Phân phối yêu cầu tuần tự giữa các server.

leastconn

Chuyển yêu cầu đến server có ít kết nối nhất.

source

Phân phối dựa trên IP nguồn (giữ kết nối liên tục với cùng server).

random

Chọn ngẫu nhiên một server backend.


7. Theo Dõi và Giám Sát

Bật giao diện quản trị

Thêm vào file cấu hình:

  • Truy cập: http://<server-ip>:8080/stats

  • Tài khoản: admin

  • Mật khẩu: password


8. Mẹo Tối Ưu Cấu Hình

  1. Sử dụng kiểm tra sức khỏe (Health Check): Thêm từ khóa check vào backend để đảm bảo chỉ server khỏe mạnh nhận lưu lượng:

  1. Tăng giới hạn kết nối: Trong phần global:

  1. Tối ưu timeout:

  • timeout connect: Thời gian chờ kết nối đến server backend.

  • timeout client: Thời gian chờ phản hồi từ client.

  • timeout server: Thời gian chờ phản hồi từ server.

  1. Sử dụng SSL Termination: Để giảm tải SSL, cấu hình frontend lắng nghe kết nối HTTPS và chuyển HTTP đến backend.


9. Các Công Cụ Hỗ Trợ

  • HAProxy Logs: Kiểm tra file log để debug:

  • Công cụ giám sát:

    • Prometheus: Tích hợp với HAProxy để theo dõi hiệu suất.

    • Grafana: Tạo dashboard trực quan.


Kết Luận

HAProxy là một công cụ mạnh mẽ giúp quản lý lưu lượng mạng, đảm bảo tính sẵn sàng cao và tăng hiệu suất hệ thống. Với cheat sheet này, bạn có thể dễ dàng cấu hình và tối ưu HAProxy cho nhu cầu cụ thể của mình. Đừng quên thực hành và kiểm tra cấu hình trước khi triển khai trong môi trường thực tế! 🚀

Last updated

Was this helpful?