Cách cài đặt HAProxy để cấu hình máy chủ cân bằng tải trên Debian 10

Tác giả Network Engineer, T.M.Hai 28, 2021, 08:33:32 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách cài đặt HAProxy để cấu hình máy chủ cân bằng tải trên Debian 10


Cân bằng tải là phương pháp phổ biến nhất để phân phối lưu lượng truy cập web đến giữa nhiều máy chủ back-end. Điều này làm cho ứng dụng có tính khả dụng cao ngay cả khi một số máy chủ gặp sự cố vì lý do nào đó. Cân bằng tải làm tăng hiệu quả và độ tin cậy của ứng dụng web. HAProxy load-balancer được sử dụng cho cùng một mục đích. HAProxy load-balancer được sử dụng rộng rãi nhất trong các ngành công nghiệp. Theo trang web chính thức, HAProxy được sử dụng bởi các công ty hàng đầu như AWS, Fedora, Github và nhiều công ty khác.

HAProxy hoặc Proxy tính khả dụng cao cung cấp giải pháp proxy và tính khả dụng cao. Nó được viết bằng C và hoạt động ở các lớp mạng và ứng dụng của mô hình TCP/IP. Điều tốt nhất là nó có một phiên bản cộng đồng miễn phí và nó là một ứng dụng mã nguồn mở. Nó hoạt động trên các hệ điều hành Linux, FreeBSD và Solaris. Phiên bản dành cho doanh nghiệp cũng có ở đó, nhưng bạn phải trả phí.

Trong hướng dẫn này, chúng ta sẽ thấy cách cài đặt HAProxy và cấu hình máy chủ cân bằng Tải trên Debian 10.

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

  • Quyền truy cập "sudo" vào tất cả các máy chủ và kiến ​​thức cơ bản về chạy các lệnh trong cửa sổ dòng lệnh Terminal Linux.
  • Đã thêm địa chỉ IP riêng vào máy chủ cân bằng tải và máy chủ back-end.
  • Hệ điều hành Debian 10 được cài đặt trên tất cả các máy chủ.

2. Cài đặt HAProxy trên Debian 10

Đối với hướng dẫn của mình, mình sẽ giả định cấu hình địa chỉ IP sau:

  • HAProxy load-balancer 10.0.12.10
  • Máy chủ web1: Địa chỉ IP: 10.0.12.15
  • Máy chủ web2: Địa chỉ IP: 10.0.12.16

Bước 1: Cập nhật gói và kho lưu trữ Hệ thống Debian

Đầu tiên, hãy chạy các lệnh dưới đây trên tất cả các hệ thống để cập nhật gói phần mềm lên phiên bản mới nhất.

Mã nguồn [Chọn]
$ sudo apt update
Mã nguồn [Chọn]
$ sudo apt upgrade -y
Bước 2: Cài đặt Nginx trên các máy chủ back-end

Chuẩn bị các máy chủ back-end của bạn bằng cách cài đặt máy chủ web Nginx trên mỗi máy chủ. Bạn cũng có thể chọn cài đặt các máy chủ web khác như Apache.

Để cài đặt Nginx, hãy chạy các lệnh sau trên mỗi máy chủ back-end trong môi trường của bạn:

Mã nguồn [Chọn]
$ sudo apt install nginx
Bước 3: Sau khi Nginx được cài đặt trên các máy chủ back-end của bạn, hãy khởi động dịch vụ, như hình dưới đây

Mã nguồn [Chọn]
$ sudo systemctl start nginx
Chúng ta cũng có thể quản lý máy chủ web Nginx bằng lệnh dưới đây:

Mã nguồn [Chọn]
$ sudo /etc/init.d/nginx "option"

option: start reload restart status stop

Bước 4: Tạo các trang index tùy chỉnh trong thư mục web của mỗi máy chủ web Nginx. Điều này sẽ giúp mình phân biệt máy chủ back-end nào đang phục vụ các yêu cầu đến.

Trên mỗi máy chủ web, hãy thực hiện các tác vụ sau:

Sao lưu tập tin index gốc bằng lệnh sau:

Mã nguồn [Chọn]
$ sudo cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig
Thêm văn bản tùy chỉnh vào tập tin index.html. Chúng ta thêm địa chỉ IP của mỗi máy chủ web.

Đối với máy chủ web 1:

Mã nguồn [Chọn]
$ sudo echo "Web server 1: 10.0.12.15"  | sudo tee /usr/share/nginx/html/index.html
Đối với máy chủ web 2:

Mã nguồn [Chọn]
$ sudo echo "Web server 2: 10.0.12.16"  | sudo tee /usr/share/nginx/html/index.html
Bạn cũng có thể sử dụng trình soạn thảo vi nếu bạn cảm thấy thoải mái hơn với điều đó. Điều này được hiển thị bên dưới:

Mã nguồn [Chọn]
$ sudo vi /usr/share/nginx/html/index.html
Khi tập tin được mở, hãy nhập văn bản và lưu tập tin.

Mở tập tin virtual host mặc định trong thư mục "/etc/nginx/sites-available/".

Mã nguồn [Chọn]
$ sudo nano /etc/nginx/sites-available/default
Bây giờ bên trong khối máy chủ, hãy thay đổi chỉ thị gốc từ "/var/www/html" thành "/usr/share/nginx/html".

Để kiểm tra cấu hình Nginx, hãy chạy lệnh sau:

Mã nguồn [Chọn]
$ sudo nginx -t
Bước 5: Bây giờ khởi động lại dịch vụ Nginx bằng lệnh sau:

Mã nguồn [Chọn]
$ sudo systemctl restart nginx
Bạn có thể kiểm tra trạng thái của Nginx bằng lệnh sau:

Mã nguồn [Chọn]
$ sudo systemctl status nginx
Bước: 6 Để cài đặt HAProxy trên Debian 10 (Buster), hãy chạy lệnh sau trên máy chủ HAProxy load-balancer.

Mã nguồn [Chọn]
$ sudo apt install haproxy -y
Sau khi HAProxy được cài đặt, bạn có thể quản lý HAProxy thông qua tập lệnh init. Đối với điều này, hãy đặt thông số "enabled" thành 1 trong "/etc/default/haproxy" như được hiển thị bên dưới:

Mã nguồn [Chọn]
$ sudo vi /etc/default/haproxy

ENABLED=1

Bây giờ tùy chọn sau có thể được sử dụng với một tập lệnh init:

Mã nguồn [Chọn]
$ sudo service haproxy "option."

option: start reload restart status stop

Bước 7: Bây giờ cấu hình bộ cân bằng tải HAProxy bằng cách chỉnh sửa tập tin cấu hình mặc định haproxy, tức là "/etc/haproxy/haproxy.cfg".

Để chỉnh sửa tập tin này, hãy chạy lệnh sau.

Mã nguồn [Chọn]
$ sudo vi /etc/haproxy/haproxy.cfg
Vui lòng sao lưu tập tin gốc để trong trường hợp xảy ra sự cố, tất cả chúng ta sẽ an toàn. Để thực hiện sao lưu, hãy sử dụng lệnh sau:

Mã nguồn [Chọn]
$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.orig
Bây giờ, hãy chuyển đến cuối tập tin và chỉnh sửa thông tin sau:

Mã nguồn [Chọn]
frontend Local_Server

bind 10.0.12.10:80

mode http

default_backend webserver

backend webserver

mode http

balance roundrobin

option forwardfor

http-request set-header X-Forwarded-Port %[dst_port]

http-request add-header X-Forwarded-Proto https if { ssl_fc }

option httpchk HEAD / HTTP/1.1rnHost:localhost

server web1 10.0.12.15:80

server web2 10.0.12.16:80


Lưu ý: Đừng quên thay đổi địa chỉ IP trong tập tin trên thành địa chỉ IP bạn đã thêm vào máy chủ web của mình.

Bước 8: Xác minh cú pháp cấu hình của tập tin trên bằng lệnh sau

Mã nguồn [Chọn]
$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg
Nếu mọi thứ diễn ra đúng, nó sẽ hiển thị đầu ra như sau: "Configuration file is valid." Nếu bạn gặp bất kỳ lỗi nào trong đầu ra, hãy kiểm tra lại tập tin cấu hình của bạn và xác minh lại.

Bước 9: Bây giờ khởi động lại dịch vụ HAProxy để áp dụng các thay đổi

Mã nguồn [Chọn]
$ sudo service haproxy restart
3. Kiểm tra cấu hình

Bây giờ là lúc để xem liệu thiết lập của chúng ta có hoạt động bình thường hay không. Nhập địa chỉ IP máy chủ HAProxy load-balancer trên trình duyệt web, trong trường hợp của mình, đó là 10.0.12.10 và làm mới trang liên tục trong 2-4 lần để xem liệu HAProxy load-balancer có hoạt động bình thường hay không. Bạn sẽ thấy các địa chỉ IP khác nhau hoặc bất kỳ văn bản nào bạn đã nhập trong tập tin index.html khi bạn tiếp tục làm mới trang nhiều lần.

Một cách khác để kiểm tra là tắt đi một trong hai máy chủ và kiểm tra xem máy chủ web khác có đang phục vụ các yêu cầu hay không.

Đó là tất cả chúng ta cần làm. Hãy thử thử nghiệm với HAProxy để tìm hiểu thêm về cách hoạt động của nó. Ví dụ: bạn có thể thử:

  • Tích hợp máy chủ web khác nhau bên cạnh nginx.
  • Thay đổi thuật toán cân bằng tải thành một thứ gì đó khác với thuật toán tổng hợp.
  • Cấu hình kiểm tra tình trạng HAProxy để xác định xem máy chủ back-end có hoạt động hay không.
  • Áp dụng các phiên cố định để kết nối người dùng với cùng một máy chủ back-end.
  • Sử dụng thống kê HAProxy để có thông tin chi tiết về lưu lượng truy cập trên máy chủ.

HAProxy có sẵn tài liệu phong phú cho cả phiên bản cộng đồng HAProxy và phiên bản doanh nghiệp HAProxy. Khám phá tài liệu này để có thêm thông tin chi tiết về việc cải thiện hiệu suất và độ tin cậy của môi trường máy chủ của bạn.

Hướng dẫn này đã được thực hiện thành công trên Debian 10 (Buster), bạn cũng có thể cài đặt HAProxy trên các bản phân phối dựa trên Debian khác như Ubuntu, Linux Mint, v.v.