Logo
Featured Image
Blog

Hướng dẫn cài đặt Haproxy trên Ubuntu

Author
tobi 14/09/2023 0 views

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

 

 

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 haproxy.cfg

 

stats auth admin:adminpassword

 

 

Cấu Hình Cookie

 

Nếu bạn có 1 website bán hàng đang muốn xây dựng hệ thống HA hoàn chỉnh, thì việc mỗi khi f5 lại website thì khách hàng sẽ mất hết các thao tác trên website hiện tại thì rất bất tiện , thêm đoạn cấu hình sau vào file haproxy.cfg để đưa cookie vào trình duyệt máy khách :

 

 frontend fttend_web bind 0.0.0.0:80 default_backend bk_web backend bkend_web balance roundrobin cookie SERVERID insert indirect nocache server web1 192.168.10.2:80 check cookie web1 server web2 192.168.10.3:80 check cookie web2 

 

Kết luận

 

Trong bài viết này, chúng ta đã hướng dẫn cài đặt và cấu hình Haproxy trên Ubuntu. Nếu bạn đang có kế hoạch triển khai một hệ thống phân phối tải, Haproxy là một giải pháp tuyệt vời để giúp bạn đạt được mục tiêu của mình , chúc các bạn cài đặt thành công .

 

 frontend fttend_web bind 0.0.0.0:80 default_backend bk_web backend bkend_web balance roundrobin cookie SERVERID insert indirect nocache server web1 192.168.10.2:80 check cookie web1 server web2 192.168.10.3:80 check cookie web2

 

Kết luận

 

Trong bài viết này, chúng ta đã hướng dẫn cài đặt và cấu hình Haproxy trên Ubuntu. Nếu bạn đang có kế hoạch triển khai một hệ thống phân phối tải, Haproxy là một giải pháp tuyệt vời để giúp bạn đạt được mục tiêu của mình , chúc các bạn cài đặt thành công .

Bình luận (0)

+ =