
Trả lời nhanh: Bí quyết chuyển nhà không downtime nằm ở một nguyên tắc: dựng bản sao hoàn chỉnh chạy song song trên VPS mới, kiểm tra chán chê, rồi mới trỏ DNS, thời điểm cắt chỉ là đổi biển chỉ đường, hai máy cùng phục vụ trong lúc DNS lan truyền. Chuỗi 9 bước: backup → dựng nền mới → chép code + database → test bằng file hosts (xem site mới qua tên miền thật mà chưa cắt DNS) → hạ TTL trước một ngày → đóng băng thay đổi → đồng bộ chốt → đổi DNS → giám sát và giữ máy cũ một tuần làm đường lui.
Nỗi sợ downtime giữ chân nhiều website ở lại hosting chật chội lâu hơn cần thiết. Sự thật: chuyển nhà đúng quy trình, khách không hề biết có cuộc chuyển nhà. Bài này là checklist 9 bước áp dụng cho cả WordPress lẫn app tự viết, tuần tự, mỗi bước có cách tự kiểm, và quan trọng nhất: luôn có đường quay đầu.
- Nguyên tắc vàng: song song trước, cắt chuyển sau, DNS là bước CUỐI, không phải bước đầu
- File hosts trên máy bạn = xem site mới qua tên miền thật trước cả thế giới
- Hạ TTL xuống 300s trước 24h: thời gian lan truyền DNS từ hàng giờ còn vài phút
- Máy cũ giữ nguyên 7 ngày: đường lui một-lệnh nếu có gì bất ổn
Bước 1-3: Chuẩn bị và dựng bản sao
- Backup toàn bộ bản cũ (code + database + uploads) và giữ một bản rời, quy tắc trước mọi cuộc phẫu thuật.
- Dựng nền trên VPS mới: stack tương đương bản cũ (WordPress: LiteSpeed/OLS + MariaDB theo chuẩn hosting Việt; app Node: PM2 + Caddy như các bài deploy trong cụm). Phiên bản PHP/Node khớp hoặc mới hơn một bậc đã kiểm tra.
- Chép dữ liệu lượt một: rsync code + uploads, dump/restore database. WordPress nhớ vá hai chỗ hay quên: bảng wp_options (siteurl/home) và search-replace URL nếu đổi cả tên miền (wp-cli làm một lệnh).
Bước 4-5: Test như thật mà chưa ai biết
4. File hosts, viên ngọc của quy trình: trên máy tính của bạn, thêm dòng IP-VPS-MOI ten-mien.vn vào file hosts (/etc/hosts hoặc C:WindowsSystem32driversetchosts). Từ máy bạn, tên miền thật giờ trỏ vào máy mới, duyệt site như khách thật: đăng nhập, đặt thử đơn, soát trang quan trọng, xem log lỗi, trong khi cả thế giới vẫn đang dùng máy cũ bình thường. Test xong nhớ xóa dòng hosts.
5. HTTPS sẵn sàng trước: cấp chứng chỉ cho máy mới ngay lúc này (Caddy tự lo khi request đầu đến; muốn chắc thì dùng DNS challenge cấp trước), để phút cắt DNS không có cửa sổ báo đỏ chứng chỉ.
Bước 6-8: Cắt chuyển phẫu thuật
- Hạ TTL trước ≥24h: vào DNS, đưa TTL bản ghi A về 300 giây. TTL là 'hạn dùng' bản ghi cũ trong cache thế giới, hạ trước thì lúc đổi, mọi nơi cập nhật trong vài phút thay vì vài giờ.
- Đóng băng + đồng bộ chốt: chọn giờ vắng, tạm khóa thay đổi dữ liệu ở bản cũ (WooCommerce: bật maintenance vài phút; blog: chỉ cần đừng đăng bài), rsync lượt chót + dump database chốt sang máy mới, lượt này nhanh vì chỉ chép phần chênh.
- Đổi DNS: bản ghi A trỏ sang IP mới. Với TTL 300s, 5-10 phút là đa số khách đã sang máy mới; ai còn cache cũ vẫn được máy cũ (đang sống nguyên) phục vụ, đây chính là 'không downtime': không khoảnh khắc nào cả hai cùng chết.
Bước 9: Giám sát và tuần đệm
Sau cắt: theo dõi log máy mới (404 lạ, lỗi 500), chạy lại các phép đo TTFB/PageSpeed làm mốc mới, kiểm tra email/webhook/cron đã trỏ đúng nơi. Máy cũ giữ nguyên trạng 7 ngày: phát hiện vấn đề lớn → trỏ DNS ngược lại là về nhà cũ trong 5 phút (TTL vẫn đang thấp); êm ả hết tuần → nâng TTL về 3600, backup lần cuối máy cũ rồi mới hủy. Tổng downtime thực tế của quy trình này: 0 đến vài phút đúng bằng cửa sổ đóng băng, và khách hầu như không nhìn thấy.
Danh sách kiểm trước ngày cắt
| Hạng mục | Kiểm gì | Cách kiểm |
|---|---|---|
| Nội dung | Số bài, số trang, số ảnh khớp giữa hai bên | Đếm ở cả hai, so con số |
| Cơ sở dữ liệu | Số dòng các bảng chính khớp | Chạy đếm ở cả hai bên |
| Tệp tải lên | Tổng số tệp và dung lượng khớp | Đếm bằng lệnh, không ước lượng |
| Chứng chỉ bảo mật | Đã cấp cho tên miền trên máy mới | Thử bằng tệp máy chủ cục bộ |
| Thư đi | Gửi thử một thư từ máy mới, kiểm vào hộp thư đến | Gửi tới địa chỉ ở dịch vụ khác |
| Tác vụ định kỳ | Đã chuyển và đang chạy | Xem nhật ký sau 24 giờ |
| Chuyển hướng địa chỉ cũ | Các đường dẫn cũ vẫn đi đúng chỗ | Thử 20 đường dẫn có lượt truy cập cao nhất |
Thử như thật mà chưa ai biết
# Tren may cua ban, tro ten mien ve may chu moi bang tep may chu cuc bo # Linux, macOS: /etc/hosts Windows: C:\Windows\System32\drivers\etc\hosts 203.0.113.10 tenmien.vn www.tenmien.vn # Kiem may tinh cua ban dang goi den dau ping -c 2 tenmien.vn curl -sI https://tenmien.vn | head -5 # Duyet ky: trang chu, trang danh muc, trang chi tiet, gio hang, thanh toan, # form lien he, dang nhap quan tri, tim kiem # Xong thi xoa dong vua them, dung de quen
Bước này là bước quan trọng nhất của cả quy trình: nó cho bạn duyệt toàn bộ trang trên máy chủ mới trong khi khách vẫn đang dùng máy cũ. Bỏ qua nó là chấp nhận phát hiện lỗi sau khi đã cắt chuyển.
Ngày cắt và tuần đệm
- Hạ thời gian lưu bản ghi tên miền xuống mức thấp trước 24 tới 48 giờ. Không làm bước này thì việc chuyển kéo dài cả ngày.
- Chọn khung giờ ít khách nhất, và đồng bộ lần cuối phần dữ liệu phát sinh.
- Đặt máy cũ ở chế độ chỉ đọc trong lúc chuyển, để không có đơn hàng rơi vào máy cũ.
- Đổi bản ghi tên miền, rồi theo dõi cả hai máy chủ cho tới khi máy cũ không còn nhận lưu lượng.
- Giữ máy cũ ít nhất hai tuần. Đây là bảo hiểm rẻ nhất trong toàn bộ quy trình.
- Theo dõi nhật ký lỗi mỗi ngày trong tuần đầu, chú ý các luồng ít chạy: khôi phục mật khẩu, gửi thư tự động, tác vụ cuối tháng.
Câu hỏi thường gặp
Chuyển WordPress có plugin nào làm giúp không?
Có (Duplicator, All-in-One WP Migration...), tiện cho site nhỏ, nhưng hiểu quy trình tay vẫn cần: plugin không lo DNS/TTL/hosts test giúp bạn, và site lớn thường vượt giới hạn upload của plugin. Nhà cung cấp VPS tử tế cũng thường hỗ trợ chuyển miễn phí.
Email theo tên miền có bị ảnh hưởng khi đổi DNS không?
Không, nếu chỉ đổi bản ghi A của web, bản ghi MX (email) giữ nguyên. Sai lầm cần tránh: chép nguyên vùng DNS mới mà quên MX cũ. Trước khi cắt, chụp lại toàn bộ vùng DNS làm đối chiếu.
Site đang dùng Cloudflare thì có khác gì?
Dễ hơn: đổi IP origin trong Cloudflare ăn ngay gần như tức thì (proxy che TTL), và bước hạ TTL bỏ qua được. Các bước dựng song song + test hosts vẫn nguyên giá trị.
Nên chuyển giờ nào, có cần báo khách không?
Giờ vắng nhất theo analytics của chính bạn (VN thường 1-5h sáng). Quy trình này không cần thông báo bảo trì, đó là cả mục đích; chỉ web có giao dịch dồn dập nên chọn thêm ngày vắng đơn.
Bài viết liên quan
- VPS hay hosting: khi nào phải chuyển lên VPS
- TTFB là gì? Vì sao cao và cách giảm
- VPS ổ Enterprise U.2 NVMe RAID 10 tại TND
- Cảnh báo: lỗ hổng cPanel/WHM mới CVE-2026-29201/29202/29203, patch 23:00 ngày 08/05
- Xeon Platinum là gì? Khác Gold, Silver, Bronze ra sao
- Docker Compose từ A-Z: chạy cả stack bằng một file
- Khi CVE công bố, cả làng biết lỗi ở đâu - Câu chuyện patch diffing và cuộc đua 3-7 ngày
- Chrome DevTools MCP cho Claude, Codex, Gemini - AI agent thật sự control browser, debug như senior dev
- Self-host n8n + AI workflow trên VPS Việt Nam (Docker, webhook, LLM)



