在开始迁移前,首先要做完整的评估。包括确认当前网站在台湾虚拟主机上的资源使用(流量、磁盘、CPU)、依赖的服务(如数据库、Redis、邮件)、以及网站应用架构(单体或分布式)。备份策略也要先规划好,至少准备一份完整的静态文件与数据库快照。还需确认目标云服务器的操作系统、PHP/Node/环境版本、扩展支持与安全组策略,确保环境一致或兼容。
列出检查清单:域名 DNS TTL、SSL 证书可移植性、第三方 API 回调地址、上传文件路径与权限、Cron 任务、以及备份/恢复窗口。对复杂站点建议做一次全量测试迁移到测试环境,验证功能与性能。
1. 记录当前主机配置与版本;2. 备份当前数据库与文件;3. 在云服务器搭建相同环境;4. 测试迁移流程并验证。
强烈建议在非高峰期进行迁移并将 DNS TTL 提前调低,以便切换时减少缓存延迟。
备份是迁移的核心。对于文件层面,使用 rsync 或 FTP 将网站根目录完整复制,同时保留文件权限与时间戳。对于数据库(如 MySQL),使用 mysqldump 做一致性快照,或在高并发场景用 Percona XtraBackup 做热备份。生成的备份应存放于多个位置:本地、云存储(如对象存储)与异地备份。
备份要包含:网站文件、数据库、配置文件(.env、nginx/apache 配置)、SSL 证书以及 crontab。备份文件应压缩并加密,保留至少最近三次快照以便回滚。
每次迁移前做一次恢复演练,验证备份完整性与可用性,确保在发生问题时能在最短时间内回滚。
备份时注意排除临时目录与缓存文件,减少备份体积,同时不要忘记备份用户上传的媒体文件。
为了保证数据一致性且将停机时间最小化,可采用先做全量迁移再做增量同步的策略。先将网站文件与数据库做一次全量复制到目标云服务器,然后在切换前使用增量同步(rsync --link-dest 或使用 binlog 增量复制)将变更同步到目标。
步骤通常为:1)预先部署并配置新环境;2)全量复制数据并进行测试;3)将网站设置为只读或短暂维护模式,执行最后一次增量同步;4)切换 DNS 或负载均衡到新服务器。
对于数据库可以启用主从复制,待从库同步完成后提升为主库以实现几乎零停机切换。文件层可以用 rsync 的增量选项频繁同步,减少差异量。
务必在切换前冻结写入操作或将关键表锁定,确保最后同步后数据无遗漏。
DNS 切换是决定切换速度的关键。提前将域名的 TTL 缩短到 300 秒或更低,完成后再在 DNS 提供商处修改记录指向目标服务器 IP。为避免 SSL 中断,建议在新服务器上先行安装并验证 SSL 证书(可使用相同的证书文件或通过 Let's Encrypt 重新签发)。
1)在新服务器完成环境与证书部署;2)测试 HTTPS 访问与站点功能;3)同步最后的数据并设维护页;4)修改 DNS;5)监控访问情况并逐步恢复 TTL。
如果发现问题,可将 DNS 指回旧主机(注意 TTL 缓存),并根据备份快速恢复服务,同时保留问题日志以便分析。
DNS 切换后可能存在全球 DNS 缓存延迟,引导客户和团队预期等待时间,并在切换窗口内加强监控。
迁移完成后需要做全面验证:功能测试(表单、登录、支付)、性能测试(响应时间、并发)、安全扫描(端口、证书)、以及日志审查。确认数据库连接、定时任务、队列服务与外部接口都正常工作。
建立自动化备份:定期数据库快照、文件增量备份到对象存储、并配置自动生命周期与多区域复制。结合监控告警(磁盘、CPU、错误率)与备份恢复演练,保证长期稳定性。
将迁移流程、配置清单、回滚步骤写入运维文档,并在每次变更前后更新,便于团队协作与问题追踪。
备份策略应符合合规要求并进行定期审计,确保关键数据具备可追溯的恢复路径。