Xây dựng WordPress High Availability với 2 VPS

🧰 Tổng quan

Khi website WordPress ngày càng đóng vai trò quan trọng trong hoạt động kinh doanh – từ blog cá nhân đến hệ thống thương mại điện tử – thì việc đảm bảo tính High Availability (High Availability – HA) là cực kỳ quan trọng.

Trong bài viết này, mình sẽ chia sẻ một kiến trúc WordPress HA thực tế, triển khai trên hai VPS đặt tại Hồ Chí Minh (HCM)Hà Nội (HN). Tất cả đều sử dụng một IP công cộng VIP duy nhất, đảm bảo website luôn hoạt động ngay cả khi một trong hai server gặp sự cố.

🌐 Kiến trúc hệ thống

Ví dụ domain:

  • www.example.com – Website chính
  • admin.example.com – Interface quản trị WordPress
  • api.example.com – Endpoint API (REST/AJAX…)

Tất cả được trỏ về một IP duy nhất:

🔗 VIP Public IP: 203.0.113.100

⚙️ Cấu hình IP – Mô phỏng thực tế

Thành phầnVị tríPublic IPPrivate IP
Load Balancer (VIP)Cloud / Anycast203.0.113.100N/A
VPS HCMHồ Chí Minh203.0.113.10110.10.1.1
VPS HNHà Nội203.0.113.10210.10.2.1

🧭 Sơ đồ kiến trúc (ASCII)

                           Internet
                               |
                            Client
                               |
                               v
                     +-----------------------+
                     |  www / admin / api    |
                     |   DNS (Mắt Bão)       |
                     +-----------------------+
                               |
                               v
                        +------------------+
                        |  VIP LoadBalancer|
                        | 203.0.113.100     |
                        +------------------+
                           /              \
                          /                \
           +-------------------+       +-------------------+
           |     VPS HCM       |       |     VPS HN        |
           | 203.0.113.101     |       | 203.0.113.102     |
           | 10.10.1.1         |       | 10.10.2.1         |
           +-------------------+       +-------------------+
                 |   |                         |   |
                 |   +-------------------------+   |
                 |      Đồng bộ mã nguồn WP        |
                 |     (rsync/git/private LAN)     |
                 |                                 |
          +---------------+                +---------------+
          | Nginx + PHP-FPM|                | Nginx + PHP-FPM|
          |  WordPress     |                |  WordPress     |
          +---------------+                +---------------+
                 |                                  |
                 |                                  |
         +-------------------+          +-------------------+
         | MySQL Master A     |<------->| MySQL Master B     |
         | 10.10.1.1          |         | 10.10.2.1          |
         +-------------------+         +-------------------+
             Master-Master Replication (Private LAN)

🔄 Nguyên lý hoạt động

  • Người dùng truy cập vào domain (ví dụ www.example.com). DNS của nhà cung cấp (ví dụ Mắt Bão) sẽ phân giải và trả về địa chỉ IP VIP 203.0.113.100.
  • Load Balancer sẽ tiếp nhận yêu cầu và phân phối đến một trong hai VPS (HCM hoặc HN) dựa theo:
    • Round-robin
    • Health-check
    • Failover (chỉ chuyển sang máy còn lại khi máy chính lỗi)
  • Web Server (Nginx + PHP-FPM) trên mỗi VPS sẽ xử lý truy vấn, phục vụ WordPress với mã nguồn được đồng bộ hóa qua private LAN.
  • Database MySQL chạy ở chế độ Master-Master Replication, tức cả hai node đều có quyền ghi, giúp tăng khả năng chịu lỗi và hiệu năng.
  • Khi một VPS gặp sự cố (hoặc bị shutdown/đứt mạng), Load Balancer sẽ tự động loại bỏ node đó khỏi vòng xử lý, toàn bộ traffic sẽ chuyển sang node còn lại → đảm bảo HA.

✅ Ưu điểm của kiến trúc này

  • Tăng độ sẵn sàng: Nếu một VPS bị lỗi, hệ thống vẫn hoạt động bình thường.
  • Phân tải: Có thể xử lý nhiều request hơn, giảm tải từng node.
  • Đa vùng địa lý: Hạ tầng trải đều giữa HCM và HN → tăng tốc độ truy cập nội vùng.
  • Dễ mở rộng: Có thể thêm node tại Đà Nẵng, Singapore,… trong tương lai.
  • Độc lập hạ tầng: Không phụ thuộc cloud nào (nếu dùng VPS truyền thống).

❌ Nhược điểm và thách thức

  • Đồng bộ source code cần cẩn thận:
    • Dễ sinh xung đột nếu dùng plugin tạo file, hoặc thay đổi nhiều liên tục.
    • Gợi ý: Tách media ra khỏi source (dùng S3 / MinIO / FTP).
  • Master-Master MySQL có rủi ro xung đột dữ liệu:
    • Cần set cấu hình auto_increment_offsetserver_id khác nhau.
    • Đòi hỏi người triển khai phải có kinh nghiệm về replication.
  • Chi phí vận hành: Gấp đôi so với hệ thống single VPS.

📌 So sánh nhanh với một số mô hình khác

Mô hìnhTính sẵn sàngPhức tạp triển khaiPhù hợp cho…
1 VPS đơn giản❌ Thấp✅ Dễ triển khaiWebsite cá nhân, demo
HA – 2 VPS HCM-HN✅ Cao⚠️ Trung bìnhSME, website doanh nghiệp
K8s WordPress (HA)✅✅ Rất cao❌ Rất phức tạpEnterprise, lớn mạnh

💡 Một số lời khuyên thực tế

  • Nên tách riêng phần media (ảnh, video) lên các hệ thống lưu trữ như:
    • Amazon S3
    • MinIO (nội bộ)
    • FTP hoặc NFS mount
    • Tránh sync file ảnh giữa 2 node → dễ xung đột
  • Sử dụng hệ thống backup định kỳ
    • Dữ liệu MySQL và source code nên được snapshot hoặc rsync định kỳ sang server thứ 3.
  • ⚠️ Đừng để cả hai node ghi dữ liệu cùng lúc vào cùng 1 file
    • Ví dụ plugin cache, log, session → nên dùng Redis/Database để đồng bộ
  • Triển khai health-check thông minh trên Load Balancer:
    • Kiểm tra status Nginx, PHP, hoặc response /wp-json/ để đảm bảo ứng dụng hoạt động.

📍 Kết luận

Việc triển khai WordPress theo kiến trúc High Availability giúp giảm thiểu downtime, đảm bảo website luôn sẵn sàng phục vụ người dùng – đặc biệt quan trọng trong các hệ thống có lượng truy cập cao, hoặc website doanh nghiệp.

Tuy cấu hình hơi phức tạp hơn so với mô hình đơn giản, nhưng đây là lựa chọn hợp lý nếu bạn muốn tiến tới vận hành chuyên nghiệp, tối ưu hiệu suấtsẵn sàng xử lý sự cố.

Bạn đã triển khai WordPress theo hướng HA chưa? Nếu chưa, giờ là lúc bắt đầu thử nghiệm!

Nếu bạn thấy bài viết hữu ích, đừng ngần ngại chia sẻ hoặc để lại bình luận nhé! 👇

Bài viết gần đây

spot_img

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Đăng ký nhận thông tin bài viết qua email