1. 规划与准备
- 盘点现网资产:列出域名、证书、数据库、静态文件、定时任务、依赖服务(Redis/Elasticsearch等)。
- 流量与性能评估:统计峰值并发、日均PV、带宽使用、慢查询日志,建议记录7天与30天数据对比。
- 备份策略:数据库冷备与热备,文件完整打包(tar+gzip),保留至少2份快照并异地存储。
- 迁移窗口与回滚窗口:确定低峰期、预留1-2小时回滚时间,编写回滚操作步骤与检查点。
- 权限与凭据:准备百度云账号、API密钥、SSH密钥、域名管理权限、SSL私钥与证书链。
2. 选择服务器配置与成本估算
- 根据链路向香港出口的延迟与目标用户分布选择机房(香港适合大中华区访问)。
- 评估实例规格:CPU、内存、SSD、带宽上限,以及是否需要快照备份与公网弹性IP。
- 示例配置对比(仅示例数据):下表列出常见轻量级实例配置与估算并发能力。
| 配置 |
CPU |
内存 |
SSD |
带宽 |
预计并发(静态/动态) |
| 入门型 |
1 vCPU |
2 GB |
40 GB |
3 Mbps |
200 / 30 |
| 均衡型 |
2 vCPU |
4 GB |
80 GB |
5 Mbps |
500 / 120 |
| 性能型 |
4 vCPU |
8 GB |
160 GB |
10 Mbps |
1500 / 600 |
- 说明:并发估算基于Nginx+静态缓存与MySQL优化,实际需压测验证。
3. 数据库迁移实操
- 导出与导入:MySQL建议使用mysqldump或Percona XtraBackup,导出时加上--single-transaction与--master-data(如需要)。
- 字符集与校验:导出前确认字符集(utf8mb4),导入后校验表项总数与校验和(CHECKSUM TABLE)。
- 传输优化:大库可先在源端压缩(gzip),再用rsync或scp传输;对100GB数据库建议使用物理备份工具。
- 示例命令:mysqldump -u root -p --single-transaction --skip-lock-tables --default-character-set=utf8mb4 dbname | gzip > db.sql.gz。
- 连接与参数调整:在新主机调整my.cnf,示例修改:innodb_buffer_pool_size=4G(若8GB内存),max_connections=500,query_cache=OFF(视版本)。
4. 文件与应用迁移步骤
- 文件同步:使用rsync -azP --delete /var/www/ user@hk-server:/var/www/ 保留权限与符号链接。
- 静态资源与CDN:把图片、视频等大文件上CDN或对象存储,减轻主机带宽压力。
- 环境依赖:记录并安装相同的PHP/Python/Node版本、扩展(php-fpm, redis, imagick等)。
- 服务配置:迁移Nginx/Apache配置,注意worker_processes与keepalive_timeout等参数;保持相同URL结构以免SEO损失。
- 自动化部署:建议使用Ansible或脚本实现一致性部署,便于回滚与横向扩容。
5. 域名、DNS与SSL切换策略
- TTL 下调:迁移前72小时将域名A记录TTL降至60-300秒,便于切换回滚。
- 灰度切换:先在一部分用户或子域名上切换,验证无误后再切换主域名。
- SSL证书:可使用Let's Encrypt自动签发或上传已有证书,注意SAN与www配置一致。
- DNS解析监控:切换后监测全球解析生效情况,可结合DNS监测工具验证。
- SEO与301:若域名或路径变化,做好301重定向与sitemap更新以保留搜索引擎权重。
6. CDN、缓存与DDoS防护
- CDN策略:静态资源使用CDN缓存,页面可部分缓存(Edge Cache + Cache-Control),降低主机负载与带宽。
- DDoS防护:结合百度云提供的基础防护与第三方WAF,对高峰流量进行黑洞/限速策略配置。
- 防火墙规则:使用UFW/iptables限制管理端口,仅开放必要端口(80/443/22),对SSH改端口并启用密钥登录。
- 速率限制与连接数:Nginx可配置limit_req与limit_conn限制无效请求,防止慢速攻击。
- 联合压力测试:上线前进行压测(例如使用ab/jmeter/vegetta),记录RPS、95%响应时间、错误率,确保在预期并发下错误率<1%。
7. 测试、监控与回滚流程(真实案例)
- 真实案例:某深圳中小型电商站点,日均流量30k PV,促销峰值并发约800,原托管于国外VPS。
- 迁移配置:迁移到百度云香港轻量级服务器(4 vCPU / 8 GB / 160 GB SSD / 10 Mbps),并接入CDN与基础DDoS防护。
- 迁移结果:经压测,静态请求95%响应时间由350 ms下降到85 ms,数据库优化后平均查询由120 ms降至35 ms。
- 回滚策略:在切换DNS前保留原机30分钟快照,若错误率>2%或订单失败率上升立即回滚并恢复DNS。
- 上线后监控:部署Prometheus+Grafana监控指标(CPU、内存、磁盘、连接数、响应时间)并配置告警,迁移后7天内每日检查搜索排名与日志异常。
来源:迁移指南 如何将现有网站迁移到百度云香港轻量级服务器