1.
迁移前的总体评估与计划
制定迁移时间窗口、列出所有服务(Web、DB、缓存、任务队列、存储)、估算数据量与带宽;确定维护窗口、回滚点、联系人与通知渠道(包括用户通知);准备测试环境与验收标准。
2.
选择新加坡主机与网络方案
确认提供商(如AWS AP-Southeast-1、GCP、新加坡本地IDC)、机型规格(CPU/RAM/盘IO)、公网带宽与出口IP;确定是否需要浮动IP、负载均衡或CDN;购买并记录控制台账号与API密钥。
3.
降低DNS TTL并准备域名计划
提前48小时将相关域名TTL改为60-300秒;列出要切换的所有域名与子域(www, api, static);准备好备用域名或临时域名用于测试(hosts 文件替换)。
4.
完整备份:文件与数据库
执行文件备份:在源服务器用rsync创建快照,如:rsync -aHAX --delete /var/www/ user@newip:/backup/www;备份数据库:mysqldump --single-transaction --routines --triggers -u root -p dbname > db.sql;保留多份备份并上传到安全存储。
5.
创建运维用户、配置SSH密钥、禁止密码登录;安装必要软件(示例):apt update && apt install -y nginx php-fpm mysql-server redis;设置时区、locale、时钟同步(ntp或chrony)。
6.
网络与安全组配置
配置云平台的安全组或防火墙:开放SSH(建议改端口)、HTTP/HTTPS、DB端口仅限内网访问;配置fail2ban与基本iptables规则;准备好备份端口和监控端口开放策略。
7.
迁移文件数据(推荐使用rsync)
先做一次全量rsync:rsync -avz --progress --exclude='cache/' /var/www/ user@newip:/var/www/;第二次在切换窗口使用rsync 增量并停止写入,确保文件权限与所有者正确:chown -R www-data:www-data /var/www。
8.
迁移数据库并保证一致性
如果流量可控,停止写入或将应用置为只读;使用mysqldump导出并传输:gzip < db.sql | ssh user@newip "gunzip > /tmp/db.sql";在目标恢复:mysql -u root -p newdb < /tmp/db.sql;重建索引并检查数据完整性。
9.
应用配置与环境变量调整
修改配置文件(数据库连接、缓存地址、存储路径、第三方API回调地址);检查硬编码IP与路径;同步环境变量文件(.env),确保密钥、证书路径和队列配置正确。
10.
部署SSL证书与HTTPS
在目标服务器用certbot申请Let's Encrypt证书:certbot --nginx -d example.com;若使用自签或付费证书,上传私钥与证书并配置nginx;设置自动续期cron:certbot renew --quiet。
11.
测试流程(上线前)
通过修改本地hosts指向新IP进行灰度测试,验证页面、API、文件上传、播放(如有)和任务队列;检查error.log与access.log;压力小流量跑通后再进入切换步骤。
12.
DNS切换与切换后验证
在低流量时刻把域名解析指向新IP(利用已低的TTL);观察接入流量、错误率、数据库性能;保留旧服务器至少48小时作为回滚;启动监控(Prometheus/CloudWatch)和报警。
13.
常见回滚方案
若发现阻断性问题:1) 立即把DNS指回旧IP(利用短TTL),2) 把客户端或负载均衡回退到旧节点,3) 在新服上恢复到迁移前快照或用备份恢复数据库;记录原因并做根因分析。
14.
上线后优化与运维建议
上线后观察7天内的错误与性能:调整数据库索引、开启缓存、启用CDN、调整nginx keepalive与worker数量;配置自动备份与快照策略,制定常态化巡检表。
15.
Q1:迁移需要多长时间才可以完成?
答:时间受数据量和准备程度影响,小型网站(<10GB)通常数小时到半天;大型站点需预先做全量同步并在切换窗口进行增量同步,可能需要数小时到1天。
16.
Q2:如何在切换时保证数据不丢失?
答:方法包括降低写入(只读模式)、使用主从复制把从库提升为主库、在切换窗口做最后一次增量rsync并导入增量binlog;确保备份可用并测试恢复。
17.
Q3:遇到DNS传播慢或部分用户访问异常怎么办?
答:提前降低TTL并使用负载均衡或CDN做流量切换;对于个别用户,可提供临时hosts替换或通过影子DNS策略(子域)分批切换;同时保留旧服务器以便回退。
来源:人人影视 新加坡服务器 迁移步骤详解 从准备到上线的全流程攻略