服务器部署迁移步骤详解:一次搞定不踩坑

迁移前的准备工作不能少

服务器迁移不是换个地方重启服务那么简单。就像搬家,东西不打包好,到了新家会乱成一团。先梳理清楚当前服务器上跑着哪些应用,数据库有没有独立部署,配置文件放在哪,端口有没有特殊开放,这些都得列个清单。

比如你有个 WordPress 站点,除了网站代码,还有 MySQL 数据库、Nginx 配置、SSL 证书,甚至可能还挂了定时任务。漏掉任何一个,新服务器上站点就跑不起来。

备份是底线,别等出事才后悔

动手之前,把老服务器的系统盘和数据盘做个完整快照。如果用的是云平台,像阿里云、腾讯云都有快照功能,几分钟就能搞定。同时手动备份关键目录:

tar -czf website-backup.tar.gz /var/www/html
mysqldump -u root -p your_database > db-backup.sql

备份文件传到本地或另一个安全位置,别只留在老服务器上。

新服务器环境搭建要一致

操作系统版本尽量保持一致,比如都是 Ubuntu 20.04。不同版本的默认软件源、依赖库可能有差异,容易引发兼容问题。

安装基础组件:

apt update
apt install nginx mysql-server php-fpm -y

如果你用 Docker,那就更简单了,直接拉取镜像启动容器,环境一致性更有保障。

数据与配置迁移实操

把打包好的网站文件传到新服务器:

scp website-backup.tar.gz user@new-server-ip:/home/user/

传完解压:

tar -xzf website-backup.tar.gz -C /var/www/html

数据库导入前,先在新服务器创建数据库和用户:

mysql -u root -p -e "CREATE DATABASE your_database;"
mysql -u root -p your_database < db-backup.sql

Nginx 配置文件也复制过去,通常在 /etc/nginx/sites-available/ 下,改好域名和路径后 reload:

nginx -t
systemctl reload nginx

测试验证比什么都重要

别急着切域名。先在本地 hosts 文件里绑定新服务器 IP 和域名,访问看看页面能不能打开,登录后台试试,表单提交走不走通。

检查 HTTPS 是否正常,证书路径对不对。很多情况是证书没复制,或者权限没开,导致浏览器报“不安全”。

确认没问题后,再去 DNS 服务商那里把 A 记录指向新 IP。TTL 提前调低一点,比如改成 300 秒,这样切换更快。

收尾工作别落下

DNS 切换后,老服务器别马上删。留着观察一两天,确认所有流量都过去了,再逐步下线。期间可以关掉写操作,比如数据库设为只读,防止数据不同步。

最后更新一下文档,把新服务器的 IP、登录方式、服务路径记下来,下次再迁也好找。