为出海而探索,为选择多想一步。CROSSBORDER GEEK / K8N.COM
K8N跨境极客CrossBorder Geek

教程

网站迁移到新服务器完整指南:从备份到切流量

迁移最怕什么

网站迁移流程示意 AI 操作示意图·以官网实际界面为准

迁服务器最怕的不是"搬不动",而是"搬完才发现漏了点东西"——图片少了、数据库是三天前的、SSL 没了、切完 DNS 一半人还在旧机。所以正确的迁移不是"复制过去就完",而是一条有顺序的流程:先备份 → 新机搭环境 → 恢复数据 → 调好 DNS → 切流量 → 逐项验证。新旧并行一段时间,确认没问题再下线旧机。

1. 第一步:把旧机的数据完整备份下来

分两块:网站文件和数据库。

文件用 rsync 搬,它支持断点续传、只传差异(官方手册里的 delta-transfer 算法),比 scp 一把梭靠谱:

# 在新机上拉取,或在旧机上推送都行
rsync -avz --progress root@旧机IP:/var/www/example.com/ /var/www/example.com/

注意末尾那个斜杠:rsync 手册明确说,源路径末尾带 / 是"复制目录里的内容",不带是"连目录本身一起复制"。这里想把内容铺到目标目录,就带斜杠。

数据库用 mysqldump 导成 SQL 文件:

mysqldump --single-transaction -u root -p exampledb > exampledb.sql

--single-transaction 对 InnoDB 表能做在线备份,不会长期锁表影响线上访问(官方手册推荐的在线备份方式)。

2. 第二步:新机把环境装好

新机搬箱与服务器流程 AI 操作示意图·以官网实际界面为准

别等数据传完才发现新机缺环境。提前装好并验证版本:

  • Web 服务器(Nginx/Apache)、PHP/Node/Python 运行时,版本对齐旧机;
  • MySQL/MariaDB,版本与旧机一致或更高;
  • 域名站点配置先写好,但暂时别让它对外跑。

把第一步的文件 rsync 过去、SQL 导入新库:

mysql -u root -p exampledb < exampledb.sql

3. 第三步:先测,再切 DNS

新旧机并行期间,先在新机上验证站点能跑:本地改 hosts 把域名指到新机 IP,或用 curl -H "Host: example.com" 新机IP 逐项测页面、登录、支付这些关键流程。

确认新机没问题,才动 DNS:

  1. 切之前一两天先把 TTL 调小(比如 300 秒),让全球缓存快速过期;
  2. 把域名的 A 记录从旧机 IP 改成新机 IP;
  3. 用 dig example.com 在不同网络下确认解析已经走新机。
新旧机 IP 不一样,SSL 证书怎么办?

证书是绑域名不绑 IP 的,但证书文件要跟着搬过去。最省事的做法是在新机上用 certbot 重新申请/续期一张新证书(Let's Encrypt 免费),别从旧机拷一堆路径不对的证书文件。切完 DNS 后再续签,避免旧机一关证书续期就断。

4. 第四步:旧站地址怎么处理

如果迁移后页面 URL 结构没变,只要 DNS 切过去就完事,不用额外 301。但如果你顺便把目录结构、域名后缀(比如从 http 老站迁到新域名)改了,那就要在 Nginx 里给旧地址配 301 到新地址,别让老链接和搜索引擎全变 404。

5. 迁移核对清单

切完对着过一遍:

  • [ ] 网站文件完整 rsync 过去,大小/数量对得上
  • [ ] 数据库已导入新库,登录、订单、内容正常
  • [ ] 新机环境版本与旧机一致或更高
  • [ ] DNS TTL 已先调小再切,dig 验证生效
  • [ ] HTTPS 证书在新机生效,无混合内容
  • [ ] 关键流程(注册/登录/下单/支付)在新机跑通
  • [ ] 旧机保留观察一两周,确认无流量回落后再下线
  • [ ] 旧地址 301 已配(如有 URL 变更)

机房工程师往新机柜上架服务器实拍

官方资料

资料核对日期:2026-10-25

最近一周热门文章

按近 7 天访问热度排序,热度积累前优先展示新文章。

当前栏目最新文章

教程 · 继续阅读同栏目的新内容

一起交流

0 条留言

还没有留言,来分享你的想法吧。

LEAVE A NOTE

你的经验,也很重要。

无需注册或登录。请勿公开邮箱密码、证件、银行卡号或其他敏感信息。

更多阅读
K8N · CrossBorder Geek

给出海玩家、独立开发者、跨境博主与外贸人的选型笔记。

关于这个博客 ↗