3. Cài đặt và cấu hình Haproxy trên server Centos:
3.2. Cài đặt Haproxy:
Đối với những website nhỏ, có thể cài đặt haproxy từ mạng (download và chạy trực tiếp), bản chạy trực tiếp có dung lượng nhỏ, hoạt động ổn định đối với nhiều website và có nhiều options để cho người quản trị website lựa chọn:
# mkdir /usr/local/haproxy “Tạo thư mục chứa Haproxy # cd /usr/local/haproxy
# wget HAProxy download link “Download Haproxy # gunzip downloaded file “Giải nén
# mv unzip file haproxy “Tạo file chạy haproxy
# chmod 700 haproxy “Cho phép đọc
Hoặc biên dịch từ bộ mã nguồn (đối với các nhà phát triển): # gcc –c *.c
# gcc –o haproxy *.o
# vi haproxy.cfg defaults balance leastconn stats enable session timeout 50000 frontend www 192.168.1.72:80 mode http default_backend all_servers backend all_servers mode http
server server1 192.168.1.72:81 weight 1 maxconn 5000 server server2 192.168.1.72:82 weight 2 maxconn 5000 server server3 192.168.1.72:83 weight 2 maxconn 10000
Chạy HaProxy
# ./haproxy -f ./haproxy.cfg –c
# ./haproxy -f ./haproxy.cfg -p /var/run/haproxy.pid -D # /sbin/service httpd start “Khởi động service httpd
Mở trình duyệt của một máy kết nối với máy này trong mạng LAN, gõ vào địa chỉ 192.168.1.72, lúc này bộ cân bằng tải đang listen trên cổng 80 của máy
192.168.1.72, nó sẽ nhận biết yêu cầu, chuyển chúng đến một trong 3 server trên các cổng 81, 82, 83. Chúng ta sẽ nhận được kết quả
Welcome to server x (với x = 1, 2, 3)
Nếu thuật toán sử dụng là round robin đơn giản, không sử dụng cookie, khi refresh liên tục bằng cách nhấn F5, giá trị “x” sẽ quay vòng trong khoảng 1-3. Điều này cho thấy thuật toán của chúng ta hoạt động tốt. Nếu sử dụng thuật toán least connections thì kết quả sẽ khác. Trên thực tế thuật toán least connections chỉ thể hiện rõ giá trị của nó khi có rất nhiều kết nối đang hướng tới server, đồng nghĩa với việc sẽ có rất nhiều session đang hoạt động. Thuật toán sẽ hướng yêu cầu đến server đang có ít active session nhất
Có thể kiểm tra các thông số về server, trạng thái server hiện tại, số lượng kết nối hiện tại, số lượt truy cập bằng địa chỉ http://192.168.1.72/haproxy?stats. Tính năng này hoạt động khi chúng ta lựa chọn trong file cấu hình tùy chọn “stats enable
”. Kết quả thu được trong ví dụ trên như sau:
H.3.3-3 Kiểm tra thông số server trong HAProxy
Một số thông số đáng chú ý như sau:
pid 3093: process id đang chạy Haproxy trên máy chủ linux
www là frontend, backend là 3 webserver server1, server2, server3 Các thông số kiểm tra server được mô tả bằng màu như trên hình vẽ, bao
gồm các trạng thái giống nhau ở cả 2 phần backup server và active server UP, DOWN, UP and going down, DOWN and going UP
Ở dưới là các thông số về session hiện tại, về các connections đang trong hàng đợi, thông lượng Bytes ra vào, số các yêu cầu bị từ chối, lỗi và cảnh báo.
Do bảng trạng thái của Haproxy chưa phản ánh hết được tình trạng hiện tại, trước đây của các server trong hệ thống nên em xin đề xuất thêm cải tiến cài đặt thêm công cụ để monitor các server trong hệ thống. Cộng cụ được cộng đồng mã
nguồn mở đánh giá cao là Ganglia (http://ganglia.info/) Với việc cài đặt thêm này sẽ giúp cho người quản trị dễ dàng theo dõi và xem lại lịch sử các thong số của server như: CPU, RAM, DISK, Network… Cách cài đặt và cấu hình sẽ được trình bày cụ thể ở phần dưới đây: