Cẩm nang NQDEV
HomeCheat SheetsContact
Cheat Sheets
Cheat Sheets
  • Overview
  • IPTables Commands
  • Bash
    • Bash Cheat Sheet: Tập hợp lệnh Bash cơ bản và nâng cao
  • HAProxy
    • HAProxy Cheat Sheet: Hướng dẫn nhanh và đầy đủ cho quản trị viên
    • Cấu Hình và Tính Năng Nổi Bật
    • Hướng Dẫn Cấu Hình Log Format Trong HAProxy
    • Hướng dẫn chi tiết về cấu hình HAProxy cho Load Balancing và giới hạn tốc độ
    • HAProxy Stats
    • HAProxy Rate Limiting
      • Hướng dẫn cấu hình Rate Limiting trong HAProxy để chống DDoS
      • Rate Limiting: http-request track
    • HAProxy WI
    • HAProxy Lua API
      • Bắt đầu với HAProxy Lua API
  • GIT
    • Git Cheat Sheet: Tổng hợp lệnh Git hữu ích cho người mới bắt đầu và chuyên gia
    • Hướng Dẫn Toàn Diện về Git
    • Hướng Dẫn Nhanh về Các Lệnh Git Cơ Bản
    • 20 lệnh Git hữu ích mọi lập trình viên nên biết
    • Cách tối ưu hóa kích thước thư mục .git để cải thiện hiệu suất
  • Redis
    • Redis Cheat Sheat: Hướng dẫn nhanh cho người mới bắt đầu
  • Wireshark
    • Wireshark Cheat Sheat: Hướng dẫn sử dụng Wireshark cho người mới bắt đầu và chuyên gia
  • Windows
    • CMD
      • Command Cheat Sheat: Tổng hợp các lệnh CMD hữu ích trên Windows
    • Hướng dẫn sử dụng Registry Editor
    • Chi tiết giao diện trong Registry Editor
  • Ubuntu
    • Ubuntu CLI cheat sheet
Powered by GitBook
On this page
  • 1. HAProxy là gì?
  • 2. Cài đặt HAProxy
  • Cài đặt trên Ubuntu/Debian
  • Kiểm tra phiên bản
  • Khởi động và dừng HAProxy
  • 3. Cấu trúc tệp cấu hình HAProxy
  • Cấu trúc file gồm 4 phần chính:
  • 4. Các Lệnh HAProxy CLI
  • 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
  • 7. Theo Dõi và Giám Sát
  • Bật giao diện quản trị
  • 8. Mẹo Tối Ưu Cấu Hình
  • 9. Các Công Cụ Hỗ Trợ
  • Kết Luận

Was this helpful?

  1. HAProxy

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

sudo systemctl start haproxy
sudo systemctl stop haproxy
sudo systemctl restart haproxy
sudo systemctl enable 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 ở:

/etc/haproxy/haproxy.cfg

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

global
    log /dev/log local0
    maxconn 2000

defaults
    log global
    mode http
    timeout connect 5s
    timeout client 50s
    timeout server 50s

frontend http-in
    bind *:80
    default_backend web-backend

backend web-backend
    balance roundrobin
    server web1 192.168.1.101:80 check
    server web2 192.168.1.102:80 check

Cân bằng tải HTTPS

frontend https-in
    bind *:443 ssl crt /etc/ssl/certs/haproxy.pem
    default_backend web-backend

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

backend web-backend
    balance source
    server web1 192.168.1.101:80 check
    server web2 192.168.1.102:80 check

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:

frontend stats
    bind *:8080
    stats enable
    stats uri /stats
    stats auth admin:password
  • 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:

server web1 192.168.1.101:80 check
server web2 192.168.1.102:80 check
  1. Tăng giới hạn kết nối: Trong phần global:

maxconn 4000
  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:

    tail -f /var/log/haproxy.log
  • 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ế! 🚀

PreviousHAProxyNextCấu Hình và Tính Năng Nổi Bật

Last updated 5 months ago

Was this helpful?