Giới thiệu
HAProxy viết tắt (High Availability Proxy) là một phần mềm mã nguồn mở được sử dụng làm load balancer và proxy server. Nó được sử dụng để phân phối tải trên nhiều server để tăng tính sẵn sàng và hiệu quả của hệ thống.Nếu một server đơn lẻ bị hỏng, cân bằng tải (load balancer) sẽ chuyển hướng lưu lượng truy cập đến các server trực tuyến còn lại. Khi một server mới được thêm vào nhóm máy chủ, bộ cân bằng tải sẽ tự động bắt đầu gửi yêu cầu đến máy chủ mới thêm này. Trong bài viết này, chúng ta sẽ hướng dẫn cài đặt Haproxy trên Ubuntu.
Chuẩn bị
Node Ubuntu có IP : 192.168.10.1 ( Cài Haproxy )
Node web1 có IP : 192.168.10.2
Node web2 có IP : 192.168.10.3
( ở node web mình sử dụng máy chủ đã có sẵn website , nếu chưa có mọi người cài websever lên nhé )
Bài hướng dẫn chủ yếu mình viết giới thiệu và cấu hình cơ bản của HAProxy , còn về phần node web1 ,node web2 sẽ có bạn đã có , còn bạn nào chưa có có thể dựng khá đơn giản bằng LEMP Stack hoặc LAMP Stack nhé.
Cài đặt
Bước 1 : Cài Haproxy
Bước đầu tiên là cài đặt Haproxy trên Ubuntu. Bạn có thể cài đặt Haproxy bằng cách sử dụng lệnh sau:
sudo add-apt-repository ppa:vbernat/haproxy-1.8
sudo apt-get update
sudo apt-get install haproxy
Bước 2 : Cấu hình Haproxy
Bây giờ bạn đã cài đặt thành công Haproxy trên Ubuntu. Tiếp theo, bạn cần phải cấu hình nó để hoạt động đúng cách. File cấu hình của Haproxy là “/etc/haproxy/haproxy.cfg”. Để chắc chắn mình sẽ copy file này ra :
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
Bạn có thể chỉnh sửa file này bằng trình soạn thảo văn bản như Nano hoặc Vim. Sau đó, bổ sung các thông tin cần thiết như địa chỉ IP của các server bạn muốn phân phối tải và cổng để phục vụ.
vi /etc/haproxy/haproxy.cfg
Thay thế bằng nội dung sau :
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
listen stats
bind :1008 # Port truy cập
mode http
stats enable
stats uri /azdigi #URL sau IP
stats realm HAProxy\ Statistics
listen webcluster
bind :80
balance roundrobin
mode http
option forwardfor
server web1 192.168.10.2:80 check #IP node1
server web2 192.168.10.3:80 check #IP node2
Bước 3 : Mở Port ở firewalld
ufw allow 1008
Bước 4 : Khởi động Haproxy
Sau khi cài đặt và cấu hình Haproxy, bạn có thể khởi động nó bằng lệnh sau:
sudo systemctl enable haproxy<br>sudo systemctl restart haproxy
Bước 5 : Truy cập kiểm tra xem proxy đã nhận 2 node chưa.
Ở đây mình truy cập theo port và đường dẫn theo đoạn cấu hình trong file haproxy.cfg : http://192.168.10.1:1008/azdigi
Tới đây là đã hoàn tất phần cài đặt và cấu hình cơ bản để bạn có thể sử dụng HAProxy rồi.
Cấu hình log cho Haproxy
Mặc định HAProxy sẽ gửi log tới rsyslog trên IP local.
Kiểm tra cấu hình log mặc định với lệnh sau :
cat /etc/haproxy/haproxy.cfg | grep ^global -A 1
Kết quả :
Chỉnh sửa cấu hình rsyslog.conf
sed -i "s/#\$ModLoad imudp/\$ModLoad imudp/g" /etc/rsyslog.conf
sed -i "s/#\$UDPServerRun 514/\$UDPServerRun 514/g" /etc/rsyslog.conf
echo '$UDPServerAddress 127.0.0.1' >> /etc/rsyslog.conf
Tạo file cấu hình rsyslog cho Haproxy :
echo 'local2.* /var/log/haproxy.log' > /etc/rsyslog.d/haproxy.conf
Khởi động lại Rsyslog và HAProxy :
systemctl restart rsyslog
systemctl restart haproxy
Kết quả File cấu hình log :
ll /var/log/haproxy.log
Nội dung :
Cách thêm tài khoản khi truy cập vào HAProxy
Các bạn thêm đoạn sau vào file config là được nhé
stats auth admin:adminpassword
Cấu Hình Cookie
Giới thiệu
HAProxy viết tắt (High Availability Proxy) là một phần mềm mã nguồn mở được sử dụng làm load balancer và proxy server. Nó được sử dụng để phân phối tải trên nhiều server để tăng tính sẵn sàng và hiệu quả của hệ thống.Nếu một server đơn lẻ bị hỏng, cân bằng tải (load balancer) sẽ chuyển hướng lưu lượng truy cập đến các server trực tuyến còn lại. Khi một server mới được thêm vào nhóm máy chủ, bộ cân bằng tải sẽ tự động bắt đầu gửi yêu cầu đến máy chủ mới thêm này. Trong bài viết này, chúng ta sẽ hướng dẫn cài đặt Haproxy trên Ubuntu.
Chuẩn bị
Node Ubuntu có IP : 192.168.10.1 ( Cài Haproxy )
Node web1 có IP : 192.168.10.2
Node web2 có IP : 192.168.10.3
( ở node web mình sử dụng máy chủ đã có sẵn website , nếu chưa có mọi người cài websever lên nhé )
Bài hướng dẫn chủ yếu mình viết giới thiệu và cấu hình cơ bản của HAProxy , còn về phần node web1 ,node web2 sẽ có bạn đã có , còn bạn nào chưa có có thể dựng khá đơn giản bằng LEMP Stack hoặc LAMP Stack nhé.
Cài đặt
Bước 1 : Cài Haproxy
Bước đầu tiên là cài đặt Haproxy trên Ubuntu. Bạn có thể cài đặt Haproxy bằng cách sử dụng lệnh sau:
sudo add-apt-repository ppa:vbernat/haproxy-1.8
sudo apt-get update
sudo apt-get install haproxy
Bước 2 : Cấu hình Haproxy
Bây giờ bạn đã cài đặt thành công Haproxy trên Ubuntu. Tiếp theo, bạn cần phải cấu hình nó để hoạt động đúng cách. File cấu hình của Haproxy là “/etc/haproxy/haproxy.cfg”. Để chắc chắn mình sẽ copy file này ra :
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
Bạn có thể chỉnh sửa file này bằng trình soạn thảo văn bản như Nano hoặc Vim. Sau đó, bổ sung các thông tin cần thiết như địa chỉ IP của các server bạn muốn phân phối tải và cổng để phục vụ.
vi /etc/haproxy/haproxy.cfg
Thay thế bằng nội dung sau :
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
listen stats
bind :1008 # Port truy cập
mode http
stats enable
stats uri /azdigi #URL sau IP
stats realm HAProxy\ Statistics
listen webcluster
bind :80
balance roundrobin
mode http
option forwardfor
server web1 192.168.10.2:80 check #IP node1
server web2 192.168.10.3:80 check #IP node2
Bước 3 : Mở Port ở firewalld
ufw allow 1008
Bước 4 : Khởi động Haproxy
Sau khi cài đặt và cấu hình Haproxy, bạn có thể khởi động nó bằng lệnh sau:
sudo systemctl enable haproxy
sudo systemctl restart haproxy
Bước 5 : Truy cập kiểm tra xem proxy đã nhận 2 node chưa.
Ở đây mình truy cập theo port và đường dẫn theo đoạn cấu hình trong file haproxy.cfg : http://192.168.10.1:1008/azdigi