Ví Dụ Load Balancer Với NGINX (NGINX Load Balancing)
Có thể bạn quan tâm
Ví dụ load balancer với NGINX (NGINX Load Balancing)
Trong bài này mình sẽ làm ví dụ, sử dụng NGINX như 1 load balancer (cân bằng tải). Dùng server phục vụ hệ thống, còn NGINX sẽ đứng ra thực hiện phân tải, tránh tình trạng 1 server phải xử lý tất cả request hoặc nếu có 1 server trong cụm server chết thì cũng không sao.

Đầu tiên mình tạo 2 server, tạm gọi là server-a và server-b
Trong ví dụ này mình dùng http-module để tạo 1 http server đơn giản (các bạn có thể dùng tomcat, netty… hay gì cũng được)
server-a chạy trên port 8081:
var http = require('http'); //create a server object: http.createServer(function (req, res) { res.write('Hello World! server-a'); //write a response to the client res.end(); //end the response }).listen(8081); //the server object listens on port 8081 console.log('server started')Start server-a


Tương tự,mình tạo 1 server-b chạy trên port 8082

* Lưu ý, mình ko có nhiều device nên mình để 2 server đều là local, các bạn có thể đặt 2 server trên 2 máy khác nhau và truy cập qua ip hay domain.
Tiếp theo mình cấu hình NGINX, cho phép truy cập 2 server a và b ở trên qua địa chỉ localhost:81
Mở file cấu hình nginx nginx.conf và thêm đoạn sau:
http { # ... upstream demo_load_balance { server localhost:8081; server localhost:8082; } server { # simple load balancing listen 81; server_name localhost; location / { proxy_pass http://demo_load_balance; } } # ... }- upstream :định nghĩa 1 cụm server, ở phần này mình liệt kê server a,b ở trên. Nếu bạn chạy 2 server a,b ở nhiều máy khác nhau thì sửa thành địa chỉ ip, domain tương ứng.
- server, location /: server thực hiện lắng nghe port 81 với các url / sẽ tự động mapping sang 2 server a hoặc b
Start NGINX và truy cập vào địa chỉ localhost:81
Kết quả, mỗi lần truy cập nó sẽ truy cập ngẫu nhiên server-a hoặc server-b.

Nếu bạn tắt server a, thì truy cập vào địa chỉ localhost:81 nó sẽ luôn chuyển hướng tới server b. Do đó hệ thống của bạn vẫn đảm bảo uptime.
Khi hệ thống của bạn có nhiều request hơn thì bạn chỉ cần thêm 1 server mới, server-c, server-d… và cấu hình lại nginx, còn người dùng thì họ vẫn truy cập bình thường, ko cần quan tâm bạn có bao nhiêu server.
Okay, Done! References: http://nginx.org/
Từ khóa » Sử Dụng Load Balancing Trên Nginx
-
Hướng Dẫn Cấu Hình Nginx Làm Load Balancing Cho Apache Trên ...
-
Load Balancing Với NGINX - Viblo
-
Nginx - Loadbalancing - Part 1 - Viblo
-
Cấu Hình Nginx Làm HTTP Load Balancer Cho Apache (CentOS 7)
-
Cấu Hình Nginx Cơ Bản Sử Dụng Load Balancing
-
Cài đặt Và Triển Khai Nginx Load Balancing Server - Kiến Thức System
-
Sử Dụng NGINX Như Một Load Balancer - Bizfly Cloud
-
Tăng Hiệu Suất Cho Server Bằng Hệ Thống Load Balancing Với Nginx
-
Deploy ứng Dụng Load Balancer Sử Dụng Nginx Với Docker | TopDev
-
Hướng Dẫn Cấu Hình Nginx Load Balance - CloudCraft
-
Ghichep-nginx/nginx- At Master - GitHub
-
Cách Sử Dụng Nginx Làm Bộ Cân Bằng Tải HTTP Trong Linux
-
Load Balancing Bằng Nginx
-
Tự Xây Dựng Hệ Thống Cân Bằng Tải Với Nginx - VNTALKING