Đánh dấu từng bước bên dưới trong lúc chuyển máy chủ; tiến độ được trình duyệt lưu tự động trong localStorage và đồng bộ lên thanh tiến độ bên trái.
-
Trước giờ chuyển sàn 24 tiếng, hạ TTL bản ghi A/AAAA từ 3600s xuống 60s và cài sẵn SSL Let’s Encrypt trên máy chủ LiteSpeed/KVM mới để trình duyệt không bao giờ gặp cảnh báo chứng chỉ lúc cắt chuyển.
# Kiểm tra chỉ số TTL bản ghi A đã giảm xuống <= 300 giây trước khi bắt đầu
dig +nocmd store.yourdomain.tld A +noall +answer
# store.yourdomain.tld. 60 IN A 203.0.113.10
-
Đảm bảo bảng đơn hàng hiệu năng cao (`wp_wc_orders`) đã đồng bộ hoàn tất, chạy nốt các tiến trình webhook thanh toán trong ActionScheduler và bật thông báo bảo trì giỏ hàng ngắn 3–5 phút cuối.
# Kiểm tra trạng thái HPOS & xử lý dứt điểm hàng đợi webhook bằng WP-CLI
wp wc hpos status --allow-root
wp action-scheduler run --hooks=woocommerce_deliver_webhook_async --allow-root
-
Chạy lượt `rsync -azP` đầu tiên khi cửa hàng vẫn mở bán bình thường để chép toàn bộ kho ảnh nặng, sau đó chỉ mất dưới 15 giây chạy lượt `rsync --delete` bù phần ảnh mới phát sinh trong khung khóa đơn.
# Lượt 1 (khi web đang mở) + Lượt 2 (chép bù 15 giây trong lúc khóa đơn)
rsync -azP -e "ssh -p 22" /var/www/html/wp-content/ deploy@198.51.100.42:/var/www/html/wp-content/
rsync -azP --delete -e "ssh -p 22" /var/www/html/wp-content/uploads/ deploy@198.51.100.42:/var/www/html/wp-content/uploads/
-
Trích xuất toàn vẹn cơ sở dữ liệu InnoDB bằng cờ `--single-transaction --quick` kết hợp nén luồng zstd qua SSH và nạp thẳng vào bộ đệm MariaDB 10.11 trên máy chủ đích.
# Truyền trực tiếp bản chụp InnoDB nén zstd sang MariaDB 10.11 máy chủ mới
mysqldump --single-transaction --quick --routines --triggers wc_prod_db \
| zstd -3 | ssh deploy@198.51.100.42 "zstd -d | mysql wc_prod_db"
-
Khai báo `WP_CACHE_KEY_SALT` riêng biệt trong `wp-config.php`, trỏ đường dẫn `/var/run/redis/redis.sock`, bật nén nhị phân `igbinary` và tắt `DISABLE_WP_CRON` trước khi mở cache.
define('WP_CACHE_KEY_SALT', 'wpv_live_cutover_2026_');
define('WP_REDIS_SCHEME', 'unix');
define('WP_REDIS_PATH', '/var/run/redis/redis.sock');
define('WP_REDIS_IGBINARY', true);
define('DISABLE_WP_CRON', true);
-
Tuyệt đối không đổi DNS công khai khi chưa kiểm thử! Dùng `/etc/hosts` hoặc `curl --resolve` vào thẳng IP mới để xác nhận nhãn `x-litespeed-cache: hit` ở trang sản phẩm và mã HTTP 200 ở `wc-ajax`.
# Kiểm tra SSL + LSCache trên máy chủ mới mà chưa ảnh hưởng khách đang truy cập
curl -I --resolve store.yourdomain.tld:443:198.51.100.42 https://store.yourdomain.tld/
curl -s -o /dev/null -w "%{http_code}\n" --resolve store.yourdomain.tld:443:198.51.100.42 \
"https://store.yourdomain.tld/?wc-ajax=get_refreshed_fragments"
-
Cập nhật IP mới trên trình quản lý DNS, mở lại chế độ bán hàng trên máy chủ mới (giữ máy cũ ở chế độ chỉ đọc để phòng hờ), lọc tham số quảng cáo khỏi khóa LSCache và bật bộ đếm systemd ActionScheduler.
# Kích hoạt bộ lập lịch WP-CLI định kỳ & làm mới toàn bộ bộ đệm LSCache
sudo systemctl enable --now wp-action-scheduler.timer
wp litespeed-purge all --allow-root