Hướng Dẫn Cài Đặt và Cấu Hình HAProxy trên Ubuntu 22.04
Giới thiệu
HAProxy (High Availability Proxy) là một công cụ cân bằng tải và proxy mã nguồn mở, hỗ trợ cả TCP và HTTP. Nó được sử dụng để phân phối lưu lượng giữa nhiều máy chủ nhằm cải thiện hiệu suất và khả năng chịu tải của hệ thống. Nếu bạn có một website với lượng truy cập lớn, HAProxy có thể đóng vai trò như một reverse proxy giúp tối ưu hóa tải và nâng cao độ tin cậy của hệ thống.
Trong bài viết này, chúng ta sẽ hướng dẫn cách cài đặt và cấu hình HAProxy trên Ubuntu 22.04.
Yêu cầu
- Cần 2 hoặc 3 máy chủ Ubuntu 22.04, một máy làm HAProxy và hai máy làm web server.
- Quyền truy cập SSH với tài khoản root hoặc người dùng có quyền sudo.
Bước 1: Đăng nhập và cập nhật hệ thống
Trước tiên, hãy đăng nhập vào máy chủ HAProxy với quyền root hoặc sudo và kiểm tra phiên bản Ubuntu:
lsb_release -a
Kết quả hiển thị:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy
Tiếp theo, cập nhật tất cả các gói phần mềm:
apt update && apt upgrade -y
Bước 2: Cài đặt HAProxy
Mặc định, HAProxy có sẵn trong kho lưu trữ của Ubuntu 22.04. Tuy nhiên, để cài đặt phiên bản mới nhất (2.8), hãy thực hiện các lệnh sau:
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:vbernat/haproxy-2.8
sudo apt update
sudo apt install haproxy -y
Kiểm tra phiên bản HAProxy đã cài đặt:
sudo haproxy -v
Bước 3: Cấu hình HAProxy
Trước khi chỉnh sửa, hãy sao lưu tệp cấu hình mặc định:
sudo cp -a /etc/haproxy/haproxy.cfg{,.orig}
Mở tệp cấu hình để chỉnh sửa:
sudo nano /etc/haproxy/haproxy.cfg
Thêm đoạn cấu hình sau để thiết lập HAProxy làm reverse proxy và cân bằng tải:
frontend haproxy-main
bind *:80
option forwardfor
default_backend apache_webservers
backend apache_webservers
balance roundrobin
server websvr1 10.0.0.10:80 check
server websvr2 10.0.0.20:80 check
Thay thế 10.0.0.10 và 10.0.0.20 bằng địa chỉ IP của các máy chủ web thực tế.
Bước 4: Cài đặt Apache trên các web server
Trên mỗi máy chủ web, cài đặt Apache:
sudo apt update
sudo apt install apache2 -y
Sau đó, tạo tệp index.html để kiểm tra:
Trên websvr1:
sudo echo "<H1>Apache on backend server 1 is running </H1>" | sudo tee /var/www/html/index.html
Trên websvr2:
sudo echo "<H1>Apache on backend server 2 is running </H1>" | sudo tee /var/www/html/index.html
Bước 5: Khởi động lại HAProxy
Sau khi cấu hình hoàn tất, khởi động lại HAProxy:
sudo systemctl restart haproxy
Kiểm tra xem HAProxy có hoạt động hay không:
while true; do curl localhost; sleep 1; done
Bạn sẽ thấy luân phiên hiển thị nội dung từ websvr1 và websvr2, chứng tỏ cân bằng tải hoạt động đúng.
Bước 6: Cấu hình giao diện giám sát HAProxy
Nếu bạn muốn theo dõi HAProxy qua giao diện web, hãy mở tệp cấu hình:
sudo nano /etc/haproxy/haproxy.cfg
Thêm đoạn cấu hình sau:
listen stats
bind :8800
stats enable
stats uri /
stats hide-version
stats auth admin:password
default_backend apache_webservers
Thay admin:password bằng thông tin đăng nhập mong muốn.
Khởi động lại HAProxy:
sudo systemctl restart haproxy
Bây giờ, bạn có thể truy cập http://YOUR_HAPROXY_IP:8800
để xem thống kê.
Kết luận
Bài viết này đã hướng dẫn bạn cách cài đặt và cấu hình HAProxy trên Ubuntu 22.04 để làm reverse proxy và cân bằng tải giữa hai máy chủ web. Với HAProxy, bạn có thể cải thiện hiệu suất và độ ổn định của hệ thống, đảm bảo khả năng xử lý lưu lượng truy cập lớn một cách hiệu quả.