1.
迁移前评估与准备
- 评估源(free VPS)与目标(付费主机)硬件差异:CPU、内存、磁盘、带宽;记录具体数值。
- 检查 OS、内核版本、LAMP/LEMP、数据库版本(例如 MySQL 5.7 vs 8.0)以避免兼容性问题。
- 统计数据量:网站文件大小、数据库大小、日志与备份占用空间(示例:数据总量 32GB,MySQL 数据库 3.2GB)。
- 备份策略:制作快照或完整备份,外部保存一份到本地或另一个云存储。
- 降低 DNS TTL(例如设为 300 秒)以便切换时缩短生效时间并减少停机窗口。
- 确认管理员访问(SSH 密钥、root 密码、控制面板账号)以及防火墙规则。
2.
目标主机配置示例与验证
- 示例配置(付费台湾主机):4 vCPU、8GB RAM、200GB NVMe、带宽 1Gbps,操作系统 Ubuntu 20.04。
- 安装所需软件:nginx 1.18、php-fpm 7.4、mysql-server 5.7、certbot、rsync、fail2ban。
- 验证性能:运行简单压力测试(ab 或 wrk),确认并发 200 时的响应和 I/O 值。
- 配置安全:关闭不必要端口,仅开放 SSH(改端口)、HTTP/HTTPS,启用 ufw/iptables。
- 配置监控与报警(Prometheus/Netdata/监控面板),确认磁盘、CPU、网络告警阈值。
- 用户与权限:同步 UID/GID,复制 /etc/passwd 与 /etc/group 中的服务账号(或创建相同账号)。
3.
数据同步方法与命令示例
- 首次全量同步建议使用 rsync:rsync -azP --delete --numeric-ids /var/www/ root@目标IP:/var/www/。
- 数据库导出示例:mysqldump -u root -p --single-transaction --quick --lock-tables=false mydb > /root/mydb.sql。
- 增量同步可用 lsyncd 或 cron + rsync 增量:rsync -az --link-dest=../snapshot /var/www/ …。
- 对大数据库建议先做逻辑导出或使用 Percona XtraBackup 做热备份,示例:xtrabackup --backup --target-dir=/data/backup。
- 切换前最后一次增量:停止写入(维护页),执行最后一次 rsync 并导入最终 mysqldump,命令示例:mysql -u root -p mydb < mydb.sql。
- SSL 处理:可以复制 /etc/letsencrypt 或在目标上使用 certbot renew 获取新证书。
4.
真实案例:从 free VPS(示例)迁移到付费主机
- 源 VPS(free)配置:1 vCPU、1GB RAM、25GB SSD,带宽 10Mbps,网站流量峰值 50 r/s。
- 目标主机(付费)配置:4 vCPU、8GB RAM、200GB NVMe、带宽 1Gbps,期望峰值 500 r/s。
- 数据量与时间估算:网站文件 12GB,数据库 3.2GB,使用 rsync 全量耗时约 45 分钟(带宽瓶颈下)。
- 切换窗口:在低峰期执行,先停写 2 分钟做最后同步,DNS TTL 为 300 秒,预计完全切换时间 5-10 分钟。
- 遇到的问题与解决:源 VPS FTP 限制导致初次上传慢,改用 rsync over ssh 并启用压缩后速度提升 2.5 倍。
- 成功指标:切换后 24 小时内错误率 <0.1%,响应时间下降 40%。
5.
DNS、CDN 与切换策略
- 先把网站置于 CDN(例如 Cloudflare)代理下,切换主机时通过 CDN 后端改 IP 可实现零停机。
- 若不使用 CDN,低 TTL(300s)加上同步后的短时维护页可将停机控制在几分钟内。
- DNS 记录需要确认 A/AAAA、MX、TXT(SPF/DMARC)等,切换时同时更新并监控解析。
- 使用阶段性切换:先将某一子域(staging.example.com)切到新机做验证,再切换主域。
- CDN 还可提供基本 DDoS 缓解与缓存命中率提升,建议配合 provider 的 anti-DDoS 服务。
6.
DDoS 防御与安全加固
- 启用 Cloudflare 或类似 CDN 的“代理”模式以隐藏原始 IP 并阻挡大流量攻击。
- 在目标主机配置防火墙(ufw/iptables),限制对管理端口的访问,只允许指定 IP 或 VPN。
- 安装 fail2ban 防止暴力登录,配置 nginx rate-limit 抑制异常请求速率。
- 与主机商确认是否包含 DDoS 防护(按流量阈值),必要时启用额外抗 DDoS 服务。
- 日志与审计:集中日志(syslog/ELK)方便攻击后分析与溯源。
7.
切换后的验证与回滚计划
- 切换后立即进行功能测试:页面加载、表单提交、邮件发送、第三方 API 调用均正常。
- 性能验证:对比响应时间与资源利用(CPU、IO、网络),确保符合预期。
- 回滚策略:保留源 VPS 最少 48 小时作为回滚可用(不删除快照),若新主机故障可立即将 DNS 指回。
- 自动化监控:配置 SLA 告警(错误率、延迟、磁盘满),出现异常自动通知运维。
- 文档与交接:记录所有命令、账号、配置差异(包括 Cron、systemd 服务),并在团队内部交接完毕。
| 项目 | 源 free VPS | 付费台湾主机 |
| CPU | 1 vCPU | 4 vCPU |
| 内存 | 1 GB | 8 GB |
| 存储 | 25 GB SSD | 200 GB NVMe |
| 带宽 | 10 Mbps | 1 Gbps |
| 数据库大小 | 3.2 GB | 3.2 GB(迁移后) |
来源:如何将free台湾vps迁移到正式付费台湾主机平滑过渡与数据同步方法