Chuyển website sang VPS không downtime: quy trình 9 bước

Chia sẻ bài viết

Mục lục
Chuyển website sang VPS không downtime: quy trình 9 bước

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.

Tóm tắt nhanh
  • 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

  1. 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.
  2. 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.
  3. 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

  1. 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ờ.
  2. Đó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.
  3. Đổ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ụcKiểm gìCách kiểm
Nội dungSố bài, số trang, số ảnh khớp giữa hai bênĐếm ở cả hai, so con số
Cơ sở dữ liệuSố dòng các bảng chính khớpChạy đếm ở cả hai bên
Tệp tải lênTổ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ớiThử bằng tệp máy chủ cục bộ
Thư điGửi thử một thư từ máy mới, kiểm vào hộp thư đếnGửi tới địa chỉ ở dịch vụ khác
Tác vụ định kỳĐã chuyển và đang chạyXem 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

  1. 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.
  2. Chọn khung giờ ít khách nhất, và đồng bộ lần cuối phần dữ liệu phát sinh.
  3. Đặ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ũ.
  4. Đổ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.
  5. 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.
  6. 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.

Hạ tầng NVMe Enterprise của TND
VPS ổ Enterprise U.2 NVMe, CPU xung cao, đặt tại Việt Nam
Điểm đến xứng đáng cho cuộc chuyển nhà: TND VPS NVMe, bàn giao 5 phút là có nền dựng bản song song, Enterprise U.2 NVMe RAID 10 + Xeon Platinum xung cao để ngay phép đo TTFB đầu tiên sau cắt DNS đã đẹp hơn nhà cũ. Cần trợ giúp, đội TND hỗ trợ chuyển miễn phí, nhắn Zalo mô tả site là có lộ trình.
Dùng thử VPS NVMe, bàn giao trong 5 phút

Bài viết liên quan