跳转到正文
YueCi
返回

域名绑定 GitHub Pages 全流程

编辑此页

博客部署在 GitHub Pages 上,原来只能通过 wxcoding.github.io 访问。买好域名后,可以把它绑定到 GitHub Pages 上,让 https://guanwx.me 成为正式地址。全程免费,且因为 GitHub Pages 服务器在境外,不需要备案。

原理

备案拦截的是”域名 + 境内托管”的组合。GitHub Pages 的节点全在境外,域名解析过去不受备案制度约束,绑定即用。

第一步:发布 CNAME 文件(代码侧)

在源码项目的 public/ 目录下创建一个名为 CNAME 的文件(无扩展名),内容只有一行:

guanwx.me

Astro 构建时会把 public/ 里的所有文件原样复制进 dist,随 GitHub Actions 部署一起发布到 Pages 仓库。这个文件的作用是让域名绑定在每次自动部署后不丢失。

第二步:配置 DNS 解析(域名注册商控制台)

在买域名的平台(阿里云/腾讯云)的”域名解析”控制台添加记录:

记录类型主机记录记录值
A@185.199.108.153
A@185.199.109.153
A@185.199.110.153
A@185.199.111.153
CNAMEwwwwxcoding.github.io

第三步:GitHub 仓库设置

注意:Pages 的自定义域名设置在发布仓库(wxcoding/wxcoding.github.io),不是源码仓库:

仓库 Settings → Pages → Custom domain
→ 填入 guanwx.me → Save
→ 等待 DNS check 通过(打钩)
→ 勾选 Enforce HTTPS

第四步:更新项目 site 配置

域名生效后,把 astro-paper.config.ts 里的 site.url 从 https://wxcoding.github.io 改为 https://guanwx.me,让 RSS 订阅地址、OG 图链接、sitemap 和文章 canonical 链接全部切换到新域名。

验证

常见问题

现象原因与处理
DNS check 一直不通过解析未生效或记录填错,用 nslookup guanwx.me 验证,等 TTL 过期后重试
证书报错”尚未签发”刚绑域名后证书签发有延迟,等 15 分钟到 1 小时再试
域名绑定莫名丢失发布分支里缺 CNAME 文件,确认第一步的文件随 dist 发布
Enforce HTTPS 无法勾选证书尚未签发完成,等签发后再勾

与境内部署的关系

绑定 GitHub Pages 的域名是境外端上岗;将来备案完成后,域名只需把解析记录切到境内的云服务器(A 记录指向 ECS 公网 IP),GitHub 端把 Custom domain 移除即可——同一个域名,两端分时复用,互不冲突。


编辑此页
分享这篇文章:

上一篇
国内部署个人网站绕不开的几件事:备案、域名与服务器选型实录