域名切换到 blog.alliot.tech
纠结许久,我还是把博客域名切换到了 blog.alliot.tech。这篇文章的标签是「折腾」,算是名副其实。那么,切换一个用了十几年的域名,到底要经历多少折腾?
十几年前,我就梦想拥有一个好看的专属 .com 域名。奈何米商们太强,我能想到、品相稍微好点的域名都被注册了。遇到几个按年续费的心仪域名,我甚至定过闹钟去蹲,盼着对方忘记续费。可惜每次临近到期,对方都会及时续上。这么多年过去,我始终没能捡漏。
那会儿我正沉迷于物联网技术,觉得这行「大有可为」,坚信「未来已来」。当时取的网络 ID 也和物联网有关:从美剧《黑客军团》的主角 Elliot 变形而来,成了 Alliot,也就是 All + IoT。那时觉得自己简直是个取名天才,一个 ID 同时装下了好几个喜欢的元素,甚至还幻想过以后拿它当产品名……
2016 年,.vip 后缀开放注册。在一位站长的提醒下,我熬夜注册了 iots.vip。iot.vip 这种三字符域名自然轮不到我,只好退而求其次加个 s。
提醒我的站长叫武哥,是当年在群里认识、从未谋面的广西大哥。他业余时间自学 PHP,一行一行敲出了几个 CMS 站,也算是我的建站启蒙老师。十多年过去,大哥似乎早已退网,我收藏的那几个站也陆续打不开了。
iots.vip 相对较短、好输入,续费还便宜(重点,要考),而且可以备案,于是一直作为主域名用到了现在。
依稀记得是同年年底的某一天,我在自家后院晒着太阳,跟老妈唠着嗑,怀里还抱着当时组装的二手笔记本刷域名。突然发现 alliot.tech 可以注册,价格也十分「划算」:152 元能注册 10 年。老妈知道后大手一挥,直接帮我拿下了。相当豪横属于是(
不过当时 .tech 后缀无法备案,域名又相对较长,所以我只把它用作私人服务的副域名。
大约到了 2017 至 2018 年,.tech 开放备案了。但 iots.vip 当时有腾讯云的安全网址认证绿盾,这项认证已于 2017 年 9 月停止新增。作为一个常年混迹于各大站长群的人,我当然舍不得放弃这个装 X 的机会。通过认证的网站在微信和 QQ 里会显示绿色盾牌;类似的大 V 认证、官方认证,要么需要大企业背景,要么每年得交几千甚至几万元。
再加上 iots.vip 已经当了很久的 QQ 域名邮箱,我索性继续用着。
这些年不止一次有人问我:这个域名是什么意思,跟我有什么关系?但 P 人的拖延就是这么严重。多年前种下的念头,直到最近准备续费时才终于冒头。alliot.tech 快到期了,我原本打算再续 10 年。打开续费页面一看,天塌了…….tech 注册局居然把价格从 152 元 10 年,涨到了 259 元一年。
说实话,我一开始准备放弃它。在我看来,域名不过是一条数据库映射,何况它既不出名,也不够短,还顶着一个「野鸡」后缀。不过最后,我还是被 AI 和对象「说服」了。
既然已经花这么多钱续费,还准备长期持有,那就干脆把它当作主域名切过来吧(毕竟我中意的那几个域名米商应该是不会放手的。
此前 Alliot’s Blog 一直以 www.iots.vip 作为唯一入口。访问 Apex(也就是根域名)iots.vip、alliot.tech 或二级域名 blog.alliot.tech,都会通过 301 永久重定向到 www.iots.vip。
这样做主要有两个好处。一是告诉搜索引擎哪个才是唯一入口,有利于 SEO。canonical 也能起到类似作用,不过 301 可以传递权重(存疑)。二是避免统计和评论系统把同一篇文章识别成多个页面。当然,也顺便满足一下我的强迫症。
这次迁移,我决定用 blog.alliot.tech 作为博客入口,不再沿用 www。blog 的语义更明确,www 也多少带着些上个时代的味道。当年使用 www.iots.vip,主要是因为传统 DNS 中的 CNAME 与 MX 记录无法共存,所以没有直接使用 Apex。现在大部分 DNS 服务已经支持 CNAME Flattening(拉平),这个限制基本不存在了。
那为什么不直接使用更短的 alliot.tech?因为它更适合作为整个站点的根入口,博客只是其中一项服务。以后如果增加个人主页、项目页面或 API 服务,用子域名区分会更清楚。比如跨界大佬 @Pika 医生 的博客也使用了这种结构。
而且,这次迁移牵涉 SEO、评论系统、静态资源分发和 Wiki 等多个地方。比起少打几个字符,我更在意入口能不能长期稳定使用,以及别人看到域名时能否一眼认出它是博客。
目前的跳转关系是:
1
2
www.alliot.tech 301 -> blog.alliot.tech
alliot.tech 301 -> blog.alliot.tech
以后有空,我可能会用 Vibe Coding 给这两个入口做个导航页。
我的基础设施主要通过 Terraform、Ansible 等 IaC 工具管理,因此 AI Agent 很容易帮我梳理这次迁移涉及的资源和范围。
第一步,替换 Hexo 配置里的所有旧域名,把 www.iots.vip 改为 blog.alliot.tech。这里的「所有」包括 robots.txt、Sitemap、RSS 等容易遗漏的地方。我还顺手把部分内链从绝对地址改成了相对地址,以后再改域名会省事一些。
静态资源 CDN 配置了安全域名,所以新域名也要加入白名单,否则页面会裂图。评论系统用的是 Artalk,同样要把 blog.alliot.tech 加入站点配置,并暂时保留旧域名,避免评论不可用。做完这些,先别急着部署。
第二步,在 Nginx 站点配置中加入 blog.alliot.tech,再参照旧站配置创建新的 CDN 实例。本站使用 EdgeOne 全站加速,回源 Host 也要改成新域名。确认新域名能够正常访问后,再部署博客。
第三步,把旧域名的 CDN 实例改为 301 跳转到新域名。如果 CDN 支持边缘函数,可以直接在边缘处理;否则就回源站处理。最后全量刷新 CDN 缓存,正式切流。
到这里,域名切换中最简单的部分才算完成。
301 虽然会告诉搜索引擎域名已经变更,但收录不会立刻更新,还得去各家站长平台处理。
Google Search Console 的站点迁移功能做得很清楚,操作很明确:添加新站点,完成 DNS 或文件认证,提交站点地图,并确认 robots.txt 可以正常访问。接着切回旧域名,在「设置」的「地址更改」中选择新站点即可。
Bing Webmaster Tools 似乎没有站点迁移或地址更改功能,因此添加并认证新站点就行。
百度站长平台还是十年前的样子,只是添加新域名还要求额外完成人脸认证。考虑到现在百度的搜索效果已经不堪入目,我干脆没再管它。(从百度进来这里的朋友,现在应该很少了吧?)
Alliot’s Blog 使用自托管的 Artalk 评论系统。切换域名时,需要把新域名加入可信域名列表,避免跨域问题。
恰好在我切换域名这段时间,几年没更新的 Artalk 发布了新版本。我顺手升级了一遍,把配置迁到了环境变量里,也更新了几套评论表情包。
此前我一直用七牛云对象存储和 CDN 分发静态资源。早期的图片路径比较乱,我又懒得整理和迁移;一年十几块钱,还算可以接受,也就一直用到了现在。
这次借助 Codex,我把博客的图片附件重新整理了一遍,全部迁到了 Cloudflare R2。只要不被刷流量,免费额度应该足够支撑我站的这点微小的访问量。
除了整理路径和文件名,我还把大部分图片转换成了更适合 Web 分发的 WebP 格式,文件更小,加载也会快一些。
EdgeOne 有点像大家常说的融合 CDN 或全站加速。除了分发静态资源,它还提供 WAF,支持动态内容、WebSocket 和边缘函数,与 Cloudflare、AWS CloudFront 的定位有些相似。
得益于去年(前年?)的开源项目开发者计划,我拿到了一批腾讯云 EdgeOne 的免费不限流量额度。前面提到的博客、评论系统、对象存储,以及我自己部署的一系列服务,如今都改由 EdgeOne 提供入口和加速。
至于为什么不用免费的 Cloudflare,主要是它在国内网络环境下的「降速」表现。虽然民间有各种优选方案,但终究不是官方支持的用法。
域名邮箱是我最不想换域名的原因。旧邮箱注册过的服务,保守估计也有几百个,而且大多只能手动修改。只能采取佛系策略:用到哪个,就改哪个。
更麻烦的是,很多站点直接用邮箱作为用户名,根本不支持更改或迁移。旧域名邮箱一时半会儿肯定割舍不了。前面提到的 QQ 域名邮箱也早已停止新增和修改,现在可选的免费域名邮箱服务并不多。
目前,能免费收发邮件的主流方案有这些:
- 飞书海外版(Lark)、飞书国内版:目前体验还可以,额度充足,也支持别名。不过要多装一个 App,而且没有邮件文件夹。如果不在意这两点,它应该算是比较省心的选择。可惜我对飞书这个 App 没什么好感,里面塞了太多我用不到的东西。今天(2026 年 8 月,已经并入豆包的飞书)居然还通过无法删除的系统机器人给我推广告,这我是真受不了。
- 网易 163:广告多,而且出过几次数据泄露。我的博客评论通知虽然还在用它,但体验确实一般。当初选择它发信,主要是因为授权码不会过期;现在已经弃用。
- 阿里云企业邮箱:提供 5 GB 邮箱容量、2 GB 网盘和 100 个账号,基本够用。问题是免费版需要每年续期,网页版还到处都是升级广告,体验也比较原始,似乎不支持别名。
- 微软:E3、E5 之类的方案本质上还是薅羊毛。经历过一次 E5 订阅被扬之后,我就不太想再折腾了。
- 企业微信邮箱:未认证、未付费时只有 1 GB 容量,不过可以在个人微信里收到邮件提醒,这点很方便。电脑端个人微信收不到企业微信的提醒。还有,不得不说小聋是真的爱让人扫码,网页版一定要扫码登录,很难忍。好在它的 App 比飞书简洁得多,我目前就先将就用着。
还有一个更折腾的方案:用 Cloudflare Email Routing 接收邮件并转发到 Gmail,发送则交给 Gmail 代发。不过收件人会看到「由 Gmail 代发」,听说偶尔还有丢信的情况,所以我暂时没用。
以后也可能会试试 CloudMail:通过 Cloudflare Email Routing 收信,再用 Resend 发信。目前还没折腾到这一步,等企业微信满足不了需求时再考虑迁移。
这次刚好搞到折扣渠道,我把 alliot.tech 一口气续了 10 年,花掉一大笔大洋。虽然折腾了这么一圈,但 iots.vip 的续费价格实在便宜,所以我也顺手把它续到了 2036 年,下一次盯着续费页面纠结,大概是十年之后啦。