域名迁移记录:从 walson.xyz 到 walson.de5.net
目录
写在前面
今天把博客主域名从 walson.xyz 迁到了 walson.de5.net。
这次迁移的原因很现实:walson.xyz 快到期了,续费价格不划算(要几百块)。
对个人博客来说,我更希望的是“稳定、低成本、可长期维护”,所以我决定切到一个可长期使用的二级域名。
我的目标
这次不是“换个名字”这么简单,我给自己定了三个目标:
- 域名可长期使用,不再被高续费绑架。
- 尽量不改现有部署链路,避免给未来增加维护负担。
- 切换完成后,访问、HTTPS、SEO 基本项都正常。
最终方案
我采用的是:
- Cloudflare 负责 DNS
- Vercel 继续负责站点部署
- Hugo 生产
baseURL改为https://walson.de5.net/
这样做的好处是:
- 博客部署方式不用推倒重来。
- DNS 和域名策略更灵活,后续迁移平台也更容易。
- 成本可控,长期心智负担更低。
今天实际做了什么
1. 先改代码里的生产域名
我把站点生产配置统一改成了新域名:
config/production/config.toml的baseURL- 文档里引用旧域名的位置(避免后续误导)
然后提交、推送、触发生产部署。
2. 在 Vercel 侧绑定新域名
把 walson.de5.net 绑定到当前生产项目和部署上,确认别名指向正确。
3. 在 Cloudflare 写 DNS
核心记录是:
A walson.de5.net -> 76.76.21.21(Vercel 推荐)
配置完成后,验证:
https://walson.de5.net返回 200- 页面内 canonical/OG 链接是新域名
4. 下线旧域名入口
把 walson.xyz / www.walson.xyz 从 Vercel 别名中移除,避免流量继续进入旧域名。
过程中踩到的坑
坑 1:Vercel 显示域名“已占用”
表现:绑定新域名时报错,提示该域名已经分配给其他项目。
处理:先排查域名当前归属,再把它切到目标项目。
坑 2:DNS 记录写入后,解析值看起来不直观
这个过程里最容易慌的是“看起来和预期不一致”。
我的经验是别只看单点结果,要同时看这三件事:
- Cloudflare 里目标记录是否已存在
- Vercel 域名配置是否判定为
misconfigured: false - 实际
https://域名是否 200 且内容正确
只要这三项成立,基本就是可用状态。
迁移后的部署流程(重点)
迁移后我的部署流程几乎没变,还是这两种:
git push origin master(自动触发 Vercel 生产部署)npm run deploy:prod(手动生产部署)
只要 Cloudflare 的那条 A 记录不动,这套流程就能长期用下去。
给未来自己的备忘
如果某天又要换平台,按这个顺序做最稳:
- 先改
baseURL - 再部署
- 再切 DNS
- 最后下线旧域名
顺序对了,迁移就是“可控的工程动作”,不是“线上事故”。
结语
这次迁移对我来说,不只是技术动作,更是一次成本和长期维护策略的调整。
个人博客本质上是长期工程。
能持续写下去、稳定访问、成本可控,比“看起来很高级”的方案更重要。