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
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:
Sửa đổi các phần sau:
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.
Bỏ chú thích các dòng sau:
Lưu và đóng tệp, sau đó tạo tệp haproxy.conf cho rsyslog bằng lệnh sau:
Thêm các dòng sau:
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:
Cuối cùng, khởi động lại dịch vụ HAProxy để áp dụng các thay đổi:
Bạn cũng có thể xác minh trạng thái của dịch vụ HAProxy bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bạn có thể chạy lệnh sau để cho phép cổng 80:
Tiếp theo, tải lại dịch vụ firewalld để áp dụng các thay đổi.
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:
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:
Xóa tất cả các dòng và thêm dòng sau:
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:
Xóa tất cả các dòng và thêm dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
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ợ.
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
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
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
Mã:
nano /etc/rsyslog.conf
Mã:
module(load="imudp")input(type="imudp" port="514")
Mã:
nano /etc/rsyslog.d/haproxy.conf
Mã:
local2.=info /var/log/haproxy-access.loglocal2.notice /var/log/haproxy-info.log
Mã:
systemctl start rsyslog
systemctl enable rsyslog
Mã:
systemctl restart haproxy
Mã:
systemctl status haproxy
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
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
Mã:
systemctl start httpd
systemctl enable httpd
Ở 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
Mã:
Chào mừng đến với Máy chủ web Apache đầu tiên!
Ở 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
Mã:
Chào mừng đến với Máy chủ web Apache thứ hai!
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ợ.