Cách cân bằng tải cho trang web bằng NGINX và dịch vụ lưu trữ VPS đa địa điểm

5 phút đọc - 20 tháng 5, 2025

hero section cover
Mục lục
  • Cách cân bằng tải trang web bằng NGINX và VPS đa vị trí
  • Bước 1: Triển khai các máy chủ VPS ở các khu vực khác nhau
  • Bước 2: Thiết lập một VPS để hoạt động như một bộ cân bằng tải
  • Bước 3: Giải quyết điểm lỗi duy nhất
  • Bước 4: Kiểm tra tình trạng và logic chuyển đổi dự phòng
  • Bước 5: Định hướng tên miền của bạn đến bộ cân bằng tải
  • Tùy chọn: Định tuyến dựa trên vị trí địa lý
  • +---------------------+
  • Những suy nghĩ cuối cùng
Chia sẻ

Phân phối lưu lượng truy cập trang web trên các máy chủ VPS tại nhiều địa điểm bằng cách sử dụng NGINX. Tìm hiểu cách cấu hình cân bằng tải, tránh các điểm lỗi duy nhất và cải thiện hiệu suất

Cách cân bằng tải trang web bằng NGINX và VPS đa vị trí

Cân bằng tải trang web của bạn trên nhiều máy chủ VPS ở các vị trí địa lý khác nhau có thể cải thiện hiệu suất, giảm độ trễ và tăng cường tính dự phòng. Bằng cách sử dụng NGINX làm proxy ngược, bạn có thể phân phối lưu lượng truy cập giữa các máy chủ backend, mỗi máy chủ lưu trữ một bản sao trang web hoặc ứng dụng của bạn.

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn qua quá trình thiết lập, nêu bật các phương pháp hay nhất và giải quyết những sai lầm thường gặp khi tạo ra một điểm lỗi duy nhất với proxy ngược — cùng với các giải pháp để giảm thiểu nó.


Bước 1: Triển khai các máy chủ VPS ở các khu vực khác nhau

Bắt đầu bằng cách triển khai các phiên bản VPS ở nhiều vị trí địa lý khác nhau, ví dụ: một ở New York, một ở Frankfurt và một ở Singapore. Mỗi VPS nên chạy:

  • Một bản sao của trang web hoặc ứng dụng của bạn
  • NGINX (nếu cũng được sử dụng làm máy chủ web cục bộ)
  • Quyền truy cập SSH để thiết lập và bảo trì

Đảm bảo nội dung và cấu hình nhất quán trên tất cả các máy chủ.


Bước 2: Thiết lập một VPS để hoạt động như một bộ cân bằng tải

Chọn một VPS để hoạt động như máy chủ proxy ngược và bộ cân bằng tải, hoặc triển khai một VPS mới cho mục đích này. Máy chủ này sẽ định tuyến lưu lượng truy cập đến các nút VPS phía sau.

Sử dụng cấu hình proxy ngược NGINX cơ bản để định nghĩa nhóm upstream và chuyển tiếp các yêu cầu đến các nút backend của bạn.

Dưới đây là một ví dụ về cấu hình NGINX cho proxy của bạn

http {
    upstream backend_servers {
        server vps1.example.com;
        server vps2.example.com;
        server vps3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://backend_servers;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

Bước 3: Giải quyết điểm lỗi duy nhất

Vấn đề

VPS lưu trữ proxy ngược NGINX trở thành điểm lỗi duy nhất. Nếu máy chủ này ngừng hoạt động, toàn bộ trang web của bạn sẽ không thể truy cập được — ngay cả khi các máy chủ backend của bạn vẫn đang chạy.

Giải pháp

Tùy chọn 1: Khả năng sẵn sàng cao với IP động

Sử dụng các công cụ như Keepalived hoặc Pacemaker với VRRP để tạo một địa chỉ IP động giữa hai hoặc nhiều nút NGINX. Nếu một nút gặp sự cố, địa chỉ IP sẽ tự động chuyển sang nút khác.

Tùy chọn 2: Cân bằng tải ở cấp độ DNS

Chạy nhiều nút cân bằng tải NGINX và sử dụng DNS vòng tròn hoặc GeoDNS (ví dụ: AWS Route 53, Cloudflare Load Balancing) để phân phối lưu lượng truy cập giữa các nút này.

Tùy chọn 3: IP Anycast (nâng cao)

Quảng bá cùng một địa chỉ IP từ nhiều khu vực địa lý bằng cách sử dụng BGP và Anycast. Lưu lượng truy cập sẽ tự động được định tuyến đến nút gần nhất dựa trên vị trí của người dùng.

Mẹo: Kết hợp định tuyến địa lý dựa trên DNS với các proxy NGINX có tính sẵn sàng cao sẽ mang lại phạm vi phủ sóng và khả năng phục hồi tốt nhất.


Bước 4: Kiểm tra tình trạng và logic chuyển đổi dự phòng

Mặc dù NGINX Open Source không hỗ trợ kiểm tra tình trạng hoạt động theo mặc định, nhưng nó sẽ ngừng định tuyến đến nút bị lỗi sau khi xảy ra lỗi kết nối. Để kiểm tra tình trạng hoạt động nâng cao hơn:

  • Sử dụng NGINX Plus
  • Hoặc xây dựng logic giám sát và chuyển đổi dự phòng bên ngoài bằng cron + curl + tải lại cấu hình

Bước 5: Định hướng tên miền của bạn đến bộ cân bằng tải

Cập nhật bản ghi DNS của bạn để trỏ đến địa chỉ IP của proxy ngược NGINX (hoặc IP động nếu sử dụng HA). Nếu bạn sử dụng nhiều proxy, hãy định cấu hình nhà cung cấp DNS của bạn để cân bằng tải hoặc phân giải theo vị trí địa lý.


Tùy chọn: Định tuyến dựa trên vị trí địa lý

NGINX bản thân không xử lý định tuyến dựa trên vị trí địa lý, nhưng bạn có thể kết hợp nó với:

  • GeoDNS: Sử dụng nhà cung cấp DNS định tuyến người dùng đến máy chủ gần nhất
  • IP Anycast: Phân phối cùng một địa chỉ IP từ nhiều trung tâm dữ liệu, cho phép tối ưu hóa định tuyến toàn cầu

``` Yêu cầu của người dùng | v +---------------------+ | GeoDNS / Nhận biết tải | | Lớp định tuyến DNS | +---------------------+ | v +----------------------+ | Proxy NGINX khu vực | | (HA hoặc IP Anycast) | +----------------------+ | v +---------------------+ | Các nút backend VPS |

+---------------------+

Những suy nghĩ cuối cùng

Sử dụng NGINX để cân bằng tải trên nhiều máy chủ VPS giúp bạn mở rộng quy mô toàn cầu và giảm độ trễ. Nhưng hãy nhớ: proxy ngược phải có tính sẵn sàng cao, nếu không nó sẽ trở thành một gánh nặng.

Để loại bỏ các điểm lỗi đơn lẻ, hãy xem xét phân phối tải dựa trên DNS, địa chỉ IP động hoặc mạng Anycast. Với kế hoạch cẩn thận, cấu hình VPS đa địa điểm của bạn có thể cung cấp hiệu suất nhanh chóng và chịu lỗi ở quy mô lớn.

Hướng dẫn này chỉ phù hợp cho phần front-end web và không đề cập đến kết nối với cơ sở dữ liệu cũng như các vấn đề và giải pháp để phân phối hệ thống này nhằm đảm bảo tính sẵn sàng cao. Chúng tôi sẽ đề cập đến nội dung đó trong một bài viết sau…

Blog

Nổi bật trong tuần

Các bài viết khác
Danh sách kiểm tra tăng cường bảo mật máy chủ Linux

Danh sách kiểm tra tăng cường bảo mật máy chủ Linux

Danh sách kiểm tra từng bước để tăng cường bảo mật cho máy chủ Linux. Bao gồm SSH, tường lửa, vá lỗi, quyền truy cập tệp, SELinux/AppArmor và ghi nhật ký kiểm tra

15 phút đọc - 8 tháng 5, 2026

hướng dẫn sử dụng iperf3: Kiểm tra tốc độ mạng trên Linux & Windows

10 phút đọc - 7 tháng 5, 2026

Các bài viết khác
background image

Bạn có thắc mắc hoặc cần giải pháp tùy chỉnh?

icon

Các tùy chọn linh hoạt

icon

Phạm vi toàn cầu

icon

Triển khai ngay lập tức

icon

Các tùy chọn linh hoạt

icon

Phạm vi toàn cầu

icon

Triển khai ngay lập tức