1.
1.1 在星光互联控制面板购买并创建香港VPS,记录公网IP、SSH端口、默认用户名(如root)与密码,建议先添加SSH公钥到面板。
1.2 在源服务器检查操作系统、Web(nginx/apache)、PHP、MySQL/MariaDB/Redis版本,列出网站目录、数据库名、Cron任务、SSL证书路径与外部依赖(对象存储、第三方API)。
2.
2.1 列清单:网站文件路径(/var/www/xxx)、静态资源、邮件数据(若有)、数据库名和用户、配置文件(/etc/nginx/sites-available)及当前DNS记录。
2.2 本地备份命令示例:tar czf /root/backup_$(date +%F).tar.gz /var/www /etc/nginx && mysqldump -u root -p yourdb > /root/yourdb.sql
3.
3.1 更新系统并安装必要软件(以Ubuntu为例):apt update && apt install -y nginx php-fpm mysql-server certbot
3.2 配置防火墙:ufw allow ssh; ufw allow http; ufw allow https; ufw enable。若使用自定义SSH端口,开放该端口。
4.
4.1 推荐使用rsync保证文件一致性:rsync -avz --delete -e "ssh -p 22" /var/www/ user@new_ip:/var/www/
4.2 大数据库建议先做一次完整mysqldump传输并导入,然后在切换时做一次增量或短暂停站点做最后一次dump。
5.
5.1 降低DNS TTL(提前24小时):把域名A记录TTL设置为300秒。
5.2 先在香港VPS上部署代码与配置:rsync同步文件 -> 恢复配置(注意替换数据库连接信息与路径)-> 安装依赖composer/npm -> 设置权限 chown -R www-data:www-data /var/www。
5.3 导入数据库(示例):mysql -u root -p create database; mysql -u root -p yourdb < /root/yourdb.sql。若数据量大,使用Percona Xtrabackup或物理复制。
6.
6.1 修改本地hosts(仅测试机)指向新IP:在本地/etc/hosts添加 "new_ip example.com" ,用浏览器或curl测试站点与API。
6.2 检查错误日志:tail -f /var/log/nginx/error.log 与应用日志,修正权限与环境差异(PHP模块、扩展版本)。
7.
7.1 推荐使用Certbot申请Let’s Encrypt证书:certbot --nginx -d example.com -d www.example.com。若DNS未切换或需要免停机,请使用DNS-01验证(适用于使用Cloud DNS/API的域名)。
7.2 若有自建邮件或外发服务,确认端口(25/465/587)是否开放并配置反向DNS与SPF/DKIM/DMARC。
8.
8.1 在低流量时段做最终短暂停站:设置维护页 -> 在源服务器做最后一次mysqldump并rsync差异 -> 切换域名A记录到星光互联VPS IP。
8.2 切换后监控访问日志与错误,核对业务功能(登录、支付、文件上传、缓存失效)。TTL短会加速生效。
9.
9.1 制定回滚计划:记录源服务器快照与备份路径,一旦新节点故障,将DNS指回旧IP并恢复数据库(注意数据冲突期)。
9.2 验收清单:功能测试、性能对比、SSL生效、Cron任务与异步队列运行正常、备份策略生效与监控报警配置完成。
10.
11. 答:提前将TTL降低到300秒,先完整同步静态文件与大部分数据库,再在低峰时段做最后一次短暂停站(1-3分钟)完成增量DB导出导入与切换DNS;或使用主从复制+提升从库为主库的方式实现近零停机。
12.
13. 答:如果能临时把域名指向新IP(通过hosts测试或短时DNS修改),可以提前申请证书;否则通过DNS-01验证申请(需要域名托管支持API或手动添加TXT记录),这样无需把域名指向即可领取证书。
14.
15. 答:保持源服务器可用并保留最近备份;若新环境问题严重,立即将域名A记录改回旧IP(TTL短会加速),恢复最新的数据库备份到旧服务器并重启服务。同时通告用户并排查问题后再二次迁移。