Hướng dẫn cấu hình Nginx làm load balancing cho Apache trên CentOS 7

Tổng quan#

Load balancing là kỹ thuật phân phối tải trên các web site có lượng truy cập cao. Giải pháp hỗ trợ việc tối ưu hóa tài nguyên, tăng sự đảm bảo, giảm độ trễ trên hệ thống.

Các thuật toán cân bằng tải cơ bản:

  • Round Robin: Các Request phân phối tuần tự tới các server, phương thức được sử dụng mặc định.
  • Least Connection: Request phân phối tới server có số kết nối tới ít nhất.
  • IP Hash: Lựa chọn Kết nối tới server bằng IP kết nối tới, tức IP A sẽ luôn kết nối tới server A trừ khi server A xảy ra sự cố.

Phần 1. Chuẩn bị#

Truy cập Nhân hòa, đăng ký 3 Máy ảo CentOS 7 với cấu hình 2 CPU, 2GB RAM – 25 GB Disk (Cấu hình gói B) 

Kết quả sau khi đăng ký dịch vụ 

Phân hoạch

Mô hình

Thiết lập ban đầu

Tại node loadbalancer

Thiết lập hostname, cập nhật hệ thống

Tắt Firewall và SELinux

Cấu hình Host file

Khởi động lại hệ thống

Tại node web1

Thiết lập hostname, cập nhật hệ thống

Tắt Firewall và SELinux

Cấu hình Host file

Khởi động lại hệ thống

Tại node web2

Thiết lập hostname, cập nhật hệ thống

Tắt Firewall và SELinux

Cấu hình Host file

Khởi động lại hệ thống

Phần 2. Cài đặt#

Bước 1: Cài đặt Nginx

Thực hiện tại node loadbalancer

Lưu ý:

  • Cài đặt Nginx từ source đễ hỗ trợ bổ sung thêm các module không có sẵn (vts, sts, stream sts không có sẵn trên repository mặc định)
  • Bổ sung thêm các gói giám sát traffic, mục địch phục vụ bài toán giám sát load balancing trên Nginx

Bổ sung bộ biên dịch

Cài đặt gói vts, sts, stream sts

Lưu ý:

  • Các gói vts, sts, stream sts hỗ trợ tốt các phiển bản nginx từ 1.15.0 trở xuống, ở docs ta sẽ sử dụng 1.13.0

Tải mã nguồn nginx

Biên dịch

Tạo user nginx và thư mục chứa cache nginx, phân quyền lại thư mục

Tạo service systemd cho nginx

Phân quyền service systemd nginx

Chạy dịch vụ

Cấu hình Load Balancing cho nginx

Lưu ý:

  • Module upstream: Module load balancing theo thuật toán round robin
  • Cấu hình cân bằng tải
    • Các server được nhóm lại bằng upstream module, định nghĩa bằng server directive

Cấu hình chuyển request tới server group, ở đẩy ta sẽ dùng proxy_pass directive

Khởi động lại dịch vụ

Bước 2: Cài đặt Apache

Thực hiện tại web1

Thực hiện tại web2

Bước 3: Kiểm tra

Truy cập điạ chỉ http://10.10.11.20:8080/status-web, trang giám sát traffic 

Truy cập http://10.10.11.20, nhấn refresh trang liên tục, các request sẽ tự động chia sẻ sang 2 trang web1web2theo thật toán round robin

Kết quả lần 1

Kết quả lần 2

 

 

có thể tham khảo thêm tại https://kipalog.com/posts/Su-dung-NGINX-nhu-mot-Load-Balancer

https://xuanthulab.net/su-dung-haproxy-lam-de-can-bang-tai-va-server-trung-gian-voi-docker.html

 

Add Comment