Cách cấu hình Nginx để cân bằng tải (load balancing) giữa các máy chủ

Cân bằng tải (load balancing) là một kỹ thuật quan trọng trong việc phân phối công việc và tải đối với các ứng dụng web. Nginx là một máy chủ web và reverse proxy phổ biến được sử dụng rộng rãi để cân bằng tải giữa các máy chủ. Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình Nginx để thực hiện cân bằng tải giữa các máy chủ.

Cài đặt Nginx

Đầu tiên, bạn cần cài đặt Nginx trên máy chủ của mình. Quá trình cài đặt phụ thuộc vào hệ điều hành bạn đang sử dụng. Sau khi cài đặt thành công, bạn có thể tiếp tục cấu hình.

学习JavaScript(二) ——在HTML 中使用JS - 掘金

Cấu hình upstream

Upstream là một khối cấu hình trong Nginx cho phép bạn xác định danh sách các máy chủ được cân bằng tải. Bạn có thể cấu hình upstream trong tệp cấu hình Nginx (nginx.conf) bằng cách thêm đoạn mã sau:

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

 

Trong ví dụ trên, chúng ta đã định nghĩa một upstream có tên là “backend” và có danh sách các máy chủ backend1.example.com, backend2.example.com và backend3.example.com.

8 tools and methods often used in JavaScript | by Maxwell | Level Up Coding

Cấu hình cân bằng tải

Tiếp theo, bạn cần cấu hình Nginx để thực hiện cân bằng tải bằng cách sử dụng upstream đã được xác định. Bạn có thể thêm đoạn mã sau vào tệp cấu hình Nginx:

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

server {
listen 80;
server_name yourdomain.com;

location / {
proxy_pass http://backend;
}
}
}

 

Trong ví dụ này, chúng ta đã cấu hình một máy chủ Nginx lắng nghe cổng 80 và chấp nhận yêu cầu từ tên miền yourdomain.com. Tất cả các yêu cầu được chuyển hướng đến upstream có tên “backend” mà chúng ta đã định nghĩa trước đó.

What is JavaScript Used For? - Lighthouse Labs

Lưu ý về cân bằng tải

Khi Nginx nhận yêu cầu từ client, nó sẽ chuyển tiếp yêu cầu đến các máy chủ backend theo cơ chế cân bằng tải mặc định (round-robin). Nó sẽ lặp lại các máy chủ backend trong danh sách theo thứ tự để phân phối tải.

Bạn cũng có thể cấu hình các thuật toán cân bằng tải khác nhau, chẳng hạn như IP hash, least_conn, hay định nghĩa tùy chỉnh. Điều này cho phép bạn điều chỉnh cách cân bằng tải hoạt động phù hợp với nhu cầu của ứng dụng của bạn.

What is JavaScript Used For? - Lighthouse Labs

Kiểm tra và theo dõi

Sau khi cấu hình xong, bạn nên kiểm tra cân bằng tải bằng cách gửi yêu cầu từ client đến máy chủ Nginx. Bạn cũng có thể sử dụng các công cụ theo dõi như log file và các công cụ thống kê của Nginx để kiểm tra việc cân bằng tải và hiệu suất của các máy chủ backend.

Tùy thuộc vào nhu cầu của bạn, bạn có thể cấu hình Nginx để xử lý cân bằng tải trên nhiều cấp độ, bao gồm cả cân bằng tải ứng dụng và cân bằng tải trên mạng.

How to build a simple counter using Javascript? | by Vidushika Dasanayaka |  Medium

Trên đây là một hướng dẫn sơ bộ về cách cấu hình Nginx để cân bằng tải giữa các máy chủ. Việc cân bằng tải giúp bạn tăng hiệu suất, độ tin cậy và khả năng mở rộng của ứng dụng web của mình. Với Nginx và các công cụ cân bằng tải khác, bạn có thể tùy chỉnh và điều chỉnh cân bằng tải theo nhu cầu của bạn.