1) 评估目标:确认搬迁目的(速度、合规、覆盖美洲用户、降低带宽成本等)。
2) 盘点资源:列出所有域名、子域、数据库、静态文件、第三方服务(邮件、API)、证书和计划任务。
3) 性能基线:记录现有访问量、峰值并发、带宽、响应时间、数据库 QPS,便于新机配置。
4) 合规注意:若目前有ICP备案,搬到美国后无需ICP备案,但要确认原有国内托管或 CDN 是否需要变更契约或备案相关的流量处理。
1) 服务商推荐:AWS(EC2、Lightsail)、DigitalOcean、Vultr、Linode、Hetzner(性价比高)以及Cloudflare Workers + 静态托管。
2) 区域与带宽:选择靠近目标用户的区域(us-east-1 或 nyc / fra 之间根据用户分布),注意出站带宽计费与峰值带宽。
3) 配置建议:中小站:2 vCPU / 4GB 内存 / 80GB SSD;中等站:4 vCPU / 8–16GB / 160GB+;数据库建议独立实例或托管 RDS。
4) 额外服务:建议使用付费 DDoS 防护、托管备份、监控与自动快照。
1) 系统选择:推荐 Ubuntu 22.04 或 Debian 12;使用非root 用户并配置 SSH key 登录。
2) 基础软件:安装 nginx/apache、php-fpm、mysql/postgres 或使用托管数据库。示例:sudo apt update && sudo apt install -y nginx php-fpm mysql-server。
3) 安全配置:关闭密码登录、配置 fail2ban、防火墙(ufw allow 22,80,443; ufw enable)。
4) 时区与字符集:设置服务器时区(timedatectl set-timezone UTC)和 MySQL 的 utf8mb4。
1) 静态文件同步(建议离峰):使用 rsync,示例:rsync -avz --progress -e "ssh -i /path/key.pem" /var/www/html/ user@us_ip:/var/www/html/。
2) 数据库迁出入:mysqldump 导出:mysqldump -u root -p --single-transaction --quick --routines dbname > db.sql;传到新机后导入:mysql -u root -p dbname < db.sql。若大于几 GB,建议压缩并分卷或使用复制。
3) 文件权限与 SELinux:设置正确权限 chown -R www-data:www-data /var/www/html && chmod -R 750。
4) 第三方服务迁移:检查邮件服务(建议保留原邮件服务或迁到第三方如 Mailgun/SendGrid),确认 API Key 与回调地址更新。
1) 配置修改:更新数据库连接、缓存(Redis)地址、外部服务域名、时区与环境变量。
2) 本地 hosts 强制测试:在本地 hosts 文件添加 new_ip domain 来模拟解析,逐项测试页面、登录、搜索、支付流程等。
3) 性能测试:使用 wrk/ab/jMeter 做压力测试,确认并发能力;优化 Nginx、PHP-FPM、数据库连接数。
4) 监控报警:部署 Prometheus/Datadog 或简单的 UptimeRobot,设置阈值报警。
1) 证书申请:使用 certbot 自动签发 Let's Encrypt:sudo apt install certbot python3-certbot-nginx && sudo certbot --nginx -d example.com -d www.example.com。
2) 互换策略:若原站使用通配符证书或商业证书,可导出并导入到新服务器,确保证书私钥安全传输。
3) HSTS 与安全头:配置 Strict-Transport-Security、X-Frame-Options、X-Content-Type-Options,避免配置过早导致无法回滚。
1) 预热:先将新站部署并用 hosts 强制指向真实 IP 做全面测试。
2) 降低 TTL:在切换前 24-48 小时将 DNS TTL 调低到 60-300 秒。
3) 切换过程:更改 A 记录指向新服务 IP;如果使用 CDN,先将源站切到新 IP,再切换 CDN 回源。
4) 兼容回滚:保留旧服务器一段时间,记录两边数据差异,必要时在旧站写入同步到新站或暂缓写入。
1) URL 保持一致:尽量保持 URL 结构和响应码一致,避免大量 404。
2) 301 永久重定向:若路径变化,使用 301 重定向到新 URL(Nginx 示例:return 301 https://$host$request_uri;)。
3) robots.txt / sitemap.xml:确保 robots 允许抓取并提交新 sitemap 至 Google Search Console / Bing Webmaster。
4) 地理标签与 CDN:若目标用户为美国,更新 hreflang(如适用)并考虑使用 Cloudflare 或 Amazon CloudFront 以降低跨洋延迟。
1) 上线 24-72 小时重点:监控错误日志、响应时间、404/500 比例、流量变化与转化率。
2) 回滚策略:在保留旧站并保持 DNS TTL 低的情况下,若发现严重问题可将 A 记录回指旧 IP。
3) 优化项:开启 Gzip/Brotli、启用缓存策略(Cache-Control)、设置 CDN、数据库慢查询优化与索引检查。
4) 备份计划:配置自动快照与数据库备份(保留至少 14 天的恢复点)。
问:搬站到美国会影响国内用户访问速度吗?
答:答:通常会有额外的跨境延迟,尤其是在没有使用国内 CDN 的情况下。解决办法:使用国际 CDN(Cloudflare)、在国内保留静态资源分发或启用双机房架构(国内和美国双向回源),或使用加速器/专线。
问:搬站需要处理哪些法律/备案问题?
答:答:把站点放到美国后,不再适用中国大陆的ICP备案要求,但要遵守美国及目标用户所在国家的法律(例如隐私/数据保护)。如果仍在国内使用 CDN 或接入国内托管服务,可能涉及备案与合规对接,建议咨询法务。
问:如果数据库体积很大怎么办,如何快速迁移?
答:答:大库迁移可采用逻辑备份(mysqldump + 压缩)或物理复制(Percona XtraBackup)、使用主从复制先把新库做从库并完成同步后切换主从,或使用云服务的数据库迁移服务(DMS)。移行时注意阻断写入窗口、增量同步与最终一致性验证。