NGINX: Hướng Dẫn Chi Tiết Cấu Hình Load Balancer

Load Balancer là một trong những tính năng mạnh mẽ của NGINX, cho phép phân phối yêu cầu từ người dùng đến nhiều backend server khác nhau.

Điều này giúp cải thiện hiệu suất, tăng tính sẵn sàng và khả năng mở rộng của hệ thống.


1. Các Khái Niệm Quan Trọng

  • Backend Server: Máy chủ xử lý yêu cầu thực tế từ client.

  • Upstream: Nhóm backend server được định nghĩa trong NGINX.

  • Load Balancing Algorithm: Thuật toán phân phối yêu cầu đến backend.


2. Cấu Hình Load Balancer

Định Nghĩa Upstream

Tệp cấu hình NGINX thường nằm trong /etc/nginx/nginx.conf hoặc /etc/nginx/conf.d/*.conf. Đầu tiên, định nghĩa nhóm backend server:

http {
    upstream backend_servers {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://backend_servers;
        }
    }
}
  • upstream: Định nghĩa nhóm server.

  • proxy_pass: Chuyển yêu cầu từ client đến nhóm server được định nghĩa.


3. Thuật Toán Load Balancing

Round Robin (Mặc định)

Phân phối yêu cầu theo thứ tự vòng tròn:

Least Connected

Phân phối yêu cầu đến server có ít kết nối nhất:

IP Hash

Gửi tất cả yêu cầu từ một client IP đến cùng một server:

Weight

Phân phối yêu cầu dựa trên trọng số:


4. Kiểm Tra Sức Khỏe Backend

Để đảm bảo hệ thống hoạt động ổn định, bạn có thể kiểm tra sức khỏe backend bằng cách định nghĩa:

  • max_fails: Số lần thử thất bại trước khi server bị đánh dấu không khả dụng.

  • fail_timeout: Khoảng thời gian server bị đánh dấu không khả dụng.


5. Tăng Hiệu Suất Load Balancer

Sử Dụng Keepalive

Sử dụng kết nối TCP giữ nguyên để giảm chi phí kết nối:

Cache Header

Giảm tải bằng cách cache kết quả:


6. Cấu Hình HTTPS Backend

Nếu backend server sử dụng HTTPS, cấu hình như sau:


7. Kiểm Tra Cấu Hình

Kiểm Tra Lỗi Cấu Hình

Kiểm tra cấu hình NGINX trước khi khởi động lại:

Khởi Động Lại NGINX

Tải lại NGINX sau khi chỉnh sửa:

Kiểm Tra Kết Quả

Sử dụng trình duyệt hoặc công cụ dòng lệnh như curl:


8. Ví Dụ Cấu Hình Hoàn Chỉnh

Cấu Hình Cân Bằng Tải Với Least Connected


9. Kết Luận

Cấu hình Load Balancer trong NGINX là một công cụ quan trọng để cải thiện hiệu suất và độ tin cậy của hệ thống. Với các thuật toán linh hoạt, kiểm tra sức khỏe backend, và khả năng mở rộng, bạn có thể thiết kế hệ thống mạnh mẽ và tối ưu.

Last updated

Was this helpful?