服务器迁移的完整流程模板
发布时间:2026-08-26 22:41       
更新时间:2026-08-27 15:51
迁移不是搬文件,是一个能拆成五个阶段的小项目。照着这个模板走,漏项的概率会小很多。
阶段一:评估
把老机器上的东西列成清单:网站目录、数据库、nginx 站点配置、SSL 证书、定时任务(crontab -l 逐个账号导出)、第三方接口的白名单。域名和证书的到期日也顺手查一遍,别迁移完半个月证书先过期。清单不全,后面全是坑。
阶段二:搭建
新机装环境,版本尽量与老机对齐,PHP 最好连小版本号都一致。装完用 php -v、php -m 和老机的输出对比一遍,差异当场处理,不留到切换当天。软件清单本身也存档:rpm -qa 或 apt list --installed 导出系统包,pip list、npm ls --global 导出语言包,新机照单安装。
阶段三:同步
先全量,后增量。文件部分用 rsync,断点续传是它的看家本领:
rsync -avz --progress /var/www/ root@新机IP:/var/www/
数据库用 mysqldump 导出再导入。全量完成到正式切换之间,再跑一两轮增量,把这段时间新产生的数据补过去。缓存和日志目录可以排除:rsync -avz --exclude 'cache/' --exclude 'logs/' /var/www/ root@新机IP:/var/www/,迁移完重建即可。
阶段四:切换
提前 24 小时把域名 TTL 调到 300,切换时改解析指向新 IP,老机保留至少一周不销毁。切换时间定在业务低谷,把要改的配置文件提前列出来,一行一行过,改完 diff 一遍确认没有多动的地方。应用配置里的数据库地址、缓存地址逐项改完,重启服务。
阶段五:观察
切换后头三天盯四样:错误日志、接口响应时间、磁盘水位、第三方回调是否正常进来。接口响应用 curl -w '%{time_total}' 抽测,比肉眼刷新可靠。一周无异常,老机才能下线。发现异常先判断是不是个别现象:自己换个网络再测,问两个用户,别一条投诉就慌着回切,也别三条投诉还不当回事。
常见报错两类:切完后偶发 502,多半是新机 php-fpm 进程数偏低,把 pm.max_children 调大;图片偶现裂开,是各处缓存没刷新,清一遍即可。
模板的价值在顺序。评估阶段做得扎实,后面四个阶段基本都是体力活。