Cách cài đặt và cấu hình HAProxy trên Rocky Linux 8

theanh

Administrator
Nhân viên
Khi bạn triển khai một ứng dụng trên Internet, tính khả dụng, khả năng mở rộng và hiệu suất của ứng dụng rất quan trọng để mang lại trải nghiệm tốt hơn cho người dùng. Có nhiều công nghệ đưa ra tính dự phòng, chẳng hạn như cân bằng tải, cụm và proxy.

HAProxy là một trình cân bằng tải miễn phí, mã nguồn mở và đáng tin cậy được thiết kế cho các trang web có lưu lượng truy cập cao. Nó cân bằng tải lưu lượng truy cập đến bằng cách phân phối lưu lượng đó trên nhiều máy chủ phụ trợ.

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách cài đặt HAProxy trên Rocky Linux 8.

Với mục đích của hướng dẫn này, chúng tôi sẽ sử dụng thiết lập sau:

Máy chủ Địa chỉ IP

HAProxy 172.16.10.10

Backend1 172.16.10.11

Backend2 172.16.10.12

Điều kiện tiên quyết​

  • Máy chủ chạy RockyLinux 8.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Cài đặt HAProxy​

Theo mặc định, gói HAProxy có sẵn trong kho lưu trữ mặc định của Rocky Linux 8. Bạn có thể cài đặt gói này bằng lệnh sau:
Mã:
dnf install haproxy -y
Sau khi HAProxy được cài đặt, hãy khởi động dịch vụ HAProxy và cho phép dịch vụ này khởi động khi khởi động lại hệ thống:
Mã:
systemctl start haproxy
systemctl enable haproxy

Cấu hình HAProxy​

Tiếp theo, bạn sẽ cần chỉnh sửa tệp /etc/haproxy/haproxy.cfg và sửa đổi hai phần frontend và backend. Trong phần Frontend, bạn sẽ cần xác định IP HAProxy, cổng, URI thống kê và tên backend. Trong phần Backend, bạn sẽ cần xác định thuật toán cân bằng tải, tên máy chủ backend, IP và cổng.
Mã:
nano /etc/haproxy/haproxy.cfg
Sửa đổi các phần sau:
Mã:
frontend http_balancer bind 172.16.10.10:80 option http-server-close option forwardfor stats uri /haproxy?statsdefault_backend Apache_webserversbackend apache_webservers mode http balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server apache1 172.16.10.11:80 check server apache2 172.16.10.12:80 check
Lưu và đóng tệp khi bạn hoàn tất, sau đó bạn sẽ cần chỉnh sửa tệp /etc/rsyslog.conf.
Mã:
nano /etc/rsyslog.conf
Bỏ chú thích các dòng sau:
Mã:
module(load="imudp")input(type="imudp" port="514")
Lưu và đóng tệp, sau đó tạo tệp haproxy.conf cho rsyslog bằng lệnh sau:
Mã:
nano /etc/rsyslog.d/haproxy.conf
Thêm các dòng sau:
Mã:
local2.=info /var/log/haproxy-access.loglocal2.notice /var/log/haproxy-info.log
Tiếp theo, khởi động dịch vụ rsyslog và cho phép dịch vụ này khởi động khi khởi động lại hệ thống:
Mã:
systemctl start rsyslog
systemctl enable rsyslog
Cuối cùng, khởi động lại dịch vụ HAProxy để áp dụng các thay đổi:
Mã:
systemctl restart haproxy
Bạn cũng có thể xác minh trạng thái của dịch vụ HAProxy bằng lệnh sau:
Mã:
systemctl status haproxy
Bạn sẽ thấy đầu ra sau:
Mã:
? haproxy.service - HAProxy Load Balancer Đã tải: đã tải (/usr/lib/systemd/system/haproxy.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Ba 2021-08-03 03:10:37 EDT; 1 phút 16 giây trước Tiến trình: 44032 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $OPTIONS (code=exited, status=0/SUCCESS) PID chính: 44036 (haproxy) Nhiệm vụ: 2 (giới hạn: 12524) Bộ nhớ: 3,1M CGroup: /system.slice/haproxy.service ??44036 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid ??44111 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid03/08 03:10:36 RockyLinux8 systemd[1]: Đang khởi động HAProxy Load Balancer...03/08 03:10:37 RockyLinux8 systemd[1]: Đã khởi động HAProxy Load Balancer.

Cấu hình Tường lửa​

Tiếp theo, bạn sẽ cần cấu hình firewalld trên tất cả các máy chủ và cho phép cổng 80 đi qua tường lửa.

Bạn có thể chạy lệnh sau để cho phép cổng 80:
Mã:
firewall-cmd --permanent --add-port=80/tcp
Tiếp theo, tải lại dịch vụ firewalld để áp dụng các thay đổi.
Mã:
firewall-cmd --reload

Cấu hình Máy chủ Backend​

Tiếp theo, bạn sẽ cần cài đặt máy chủ Apache trên cả hai máy chủ backend. Chạy lệnh sau để cài đặt máy chủ Apache.
Mã:
dnf install httpd -y
Sau khi máy chủ Apache được cài đặt, hãy khởi động dịch vụ Apache và cho phép nó khởi động khi khởi động lại hệ thống:
Mã:
systemctl start httpd
systemctl enable httpd
Tiếp theo, bạn sẽ cần sửa đổi tệp index.html mặc định trên cả hai máy chủ phụ trợ.

Ở phần phụ trợ đầu tiên, hãy chỉnh sửa tệp index.html bằng lệnh sau:
Mã:
nano /usr/share/httpd/noindex/index.html
Xóa tất cả các dòng và thêm dòng sau:
Mã:
Chào mừng đến với Máy chủ web Apache đầu tiên!
Lưu và đóng tệp khi bạn hoàn tất.

Ở phần phụ trợ thứ hai, hãy chỉnh sửa tệp index.html bằng lệnh sau:
Mã:
nano /usr/share/httpd/noindex/index.html
Xóa tất cả các dòng và thêm dòng sau:
Mã:
Chào mừng đến với Máy chủ web Apache thứ hai!
Lưu và đóng tệp khi bạn hoàn tất.

Xác minh HAProxy​

Tại thời điểm này, HAProxy được cấu hình để chuyển tiếp tất cả các yêu cầu đến máy chủ phụ trợ dựa trên thuật toán cân bằng tải. Bây giờ, đã đến lúc kiểm tra xem HAProxy có hoạt động bình thường hay không.

Mở trình duyệt web của bạn và nhập IP HAProxy vào URL . Bạn sẽ thấy trang máy chủ web Apache đầu tiên của mình:



Tiếp theo, làm mới lại trang đó một lần nữa, bạn sẽ thấy trang máy chủ web Apache thứ hai của mình:



Điều này xác nhận rằng HAProxy đang hoạt động như mong đợi và nó đang phân phối lưu lượng giữa hai máy chủ phụ trợ.

Kết luận​

Xin chúc mừng! Bạn đã cài đặt và định cấu hình bộ cân bằng tải HAProxy thành công trên Rocky Linux 8. Bây giờ bạn có thể triển khai HAProxy trong môi trường sản xuất để đạt được hiệu suất và khả năng mở rộng cao.
 
Back
Bên trên