Nếu bạn đang tìm cách phân phối tải cho ứng dụng web hoặc tăng độ tin cậy của hệ thống, HAProxy là một giải pháp tuyệt vời. HAProxy là một công cụ mạnh mẽ, mã nguồn mở, được sử dụng để cân bằng tải (Load Balancer) và proxy. Trong bài viết này, mình sẽ hướng dẫn từng bước để cài đặt và cấu hình HAProxy trên Ubuntu, kèm theo các mẹo để tối ưu hóa hiệu suất.
HAProxy (High Availability Proxy) là một phần mềm cân bằng tải và proxy hiệu suất cao, được sử dụng rộng rãi để phân phối lưu lượng đến nhiều server backend. Nó hỗ trợ cả giao thức HTTP và TCP, phù hợp cho các ứng dụng web, cơ sở dữ liệu, hoặc bất kỳ dịch vụ nào cần phân tải.
Nếu bạn muốn tìm hiểu chi tiết hơn về HAProxy, mình có một bài viết thông qua đường dẫn bên dưới!
Tham khảo thêm tại: HAProxy là gì? Giải pháp cân bằng tải cho Website lưu lượng cao
Chuẩn bị trước khi bắt đầu
- Một máy chủ chạy Ubuntu (bài viết sử dụng Ubuntu 20.04/22.04).
- Quyền root hoặc sudo.
- Ít nhất 2 server backend (ví dụ: web server chạy Nginx hoặc Apache).
- Kết nối mạng ổn định và các cổng cần thiết được mở (80, 443, hoặc 8080 cho thống kê).
Hướng dẫn cấu hình HAProxy
Cài đặt HAProxy
Cập nhật hệ thống:
Đầu tiên, hãy đảm bảo hệ thống của bạn được cập nhật:
sudo apt update && sudo apt upgrade -y
Cài đặt HAProxy:
Chạy lệnh sau để cài đặt phiên bản mới nhất của HAProxy:
sudo apt install haproxy -y
Kiểm tra phiên bản:
Kiểm tra xem HAProxy đã được cài đặt đúng chưa:
haproxy -v
Bạn sẽ thấy phiên bản, ví dụ: HAProxy version 2.0.33
Kích hoạt và khởi động HAProxy:
Đảm bảo HAProxy tự động chạy khi khởi động máy chủ:
sudo systemctl enable haproxy
sudo systemctl start haproxy
Kiểm tra trạng thái:
sudo systemctl status haproxy
Nếu dịch vụ đang chạy, bạn sẽ thấy trạng thái active (running)
.
Cấu hình HAProxy
Tệp cấu hình chính của HAProxy nằm tại /etc/haproxy/haproxy.cfg
. Đây là nơi bạn định nghĩa cách HAProxy xử lý lưu lượng.
Sao lưu tệp cấu hình:
Trước khi chỉnh sửa, hãy sao lưu tệp gốc:
sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
Chỉnh sửa tệp cấu hình:
Mở tệp bằng trình soạn thảo như nano
:
sudo nano /etc/haproxy/haproxy.cfg
Ví dụ cấu hình cơ bản:
Dưới đây là cấu hình mẫu để cân bằng tải cho hai web server (IP được sử dụng bao gồm: 160.250.4.68
và 160.250.4.76
) sử dụng thuật toán round-robin:
global
log /dev/log local0
log /dev/log local1 notice
daemon
maxconn 2048
defaults
log global
mode http
option httplog
timeout connect 5s
timeout client 50s
timeout server 50s
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin
server web1 160.250.4.68:80 check
server web2 160.250.4.76:80 check
Trong đó:
- global: Thiết lập log, số kết nối tối đa, và chạy dưới dạng daemon.
- defaults: Định nghĩa các thiết lập chung như timeout và chế độ HTTP.
- frontend http_front: Lắng nghe trên cổng 80 để nhận yêu cầu từ client.
- backend http_back: Chuyển yêu cầu đến các server backend theo thuật toán round-robin.
check
đảm bảo HAProxy kiểm tra trạng thái server.
Kiểm tra cấu hình:
Chạy lệnh để kiểm tra lỗi cú pháp:
haproxy -f /etc/haproxy/haproxy.cfg -c
Nếu thấy “Configuration file is valid”, cấu hình của bạn đã đúng.
Khởi động lại HAProxy:
Áp dụng cấu hình mới:
sudo systemctl restart haproxy
Kiểm tra Load Balancer
Truy cập qua trình duyệt: Truy cập qua http://<ip-may-chu>
Khi tải lại trang web, bạn thấy trang web phản hồi lại một trong 2 server của bạn.
Với hai web server đơn giản chạy Nginx và các tệp HTML trên, bạn có thể thử nghiệm HAProxy Load Balancer. Khi truy cập HAProxy, bạn sẽ thấy yêu cầu được phân phối luân phiên giữa hai server.
Nếu cần hỗ trợ thêm (ví dụ: cấu hình HTTPS, thêm nội dung web phức tạp hơn, hoặc khắc phục lỗi), hãy cung cấp chi tiết để mình hỗ trợ! Hoặc nếu cần một VPS đáp ứng được nhu cầu cân bằng tải Website của bạn, hãy truy cập VPSMMO và lựa chọn sản phẩm VPS phù hợp với nhu cầu của bạn ngay hôm nay!
Chúc các bạn thực hiện thành công!
CÔNG TY TNHH VPSMMO
- VP: 8B đường B31, KDC 91B, Phường An Khánh, Quận Ninh Kiều, Thành phố Cần Thơ
- Tel: 0589549338
- Email: info@vpsmmo.vn