🧰 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) và 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ínhadmin.example.com
– Interface quản trị WordPressapi.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ần | Vị trí | Public IP | Private IP |
---|---|---|---|
Load Balancer (VIP) | Cloud / Anycast | 203.0.113.100 | N/A |
VPS HCM | Hồ Chí Minh | 203.0.113.101 | 10.10.1.1 |
VPS HN | Hà Nội | 203.0.113.102 | 10.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 VIP203.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_offset
vàserver_id
khác nhau. - Đòi hỏi người triển khai phải có kinh nghiệm về replication.
- Cần set cấu hình
- 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ình | Tính sẵn sàng | Phức tạp triển khai | Phù hợp cho… |
---|---|---|---|
1 VPS đơn giản | ❌ Thấp | ✅ Dễ triển khai | Website cá nhân, demo |
HA – 2 VPS HCM-HN | ✅ Cao | ⚠️ Trung bình | SME, website doanh nghiệp |
K8s WordPress (HA) | ✅✅ Rất cao | ❌ Rất phức tạp | Enterprise, 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.
- Kiểm tra status Nginx, PHP, hoặc response
📍 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ất và sẵ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é! 👇