5.配置自定义域名

在本篇博客中,我们将介绍如何使用 GitHub Actions 来实现 Hexo 博客的自动化部署,并且配置 自定义域名,确保 GitHub Pages 部署后不会丢失域名设置。


1. 配置 GitHub Actions

1.1 修改 .github/workflows/deploy.yml 文件

deploy.yml 文件中添加hexo deploy --cname <name>到下面位置:

1
2
3
4
5
6
7
8
9
10
11
12
jobs:
deploy:
steps:
- name: Deploy to GitHub Pages # 部署到 GitHub Pages
run: |
mkdir -p ~/.ssh/
echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.name "$GIT_NAME"
git config --global user.email "$GIT_EMAIL"
hexo deploy --cname neurowave.tech # 在这里指定域名

2. 配置自定义域名

2.1 在阿里云配置域名解析

如果你使用的是 阿里云 购买的域名,需要在 阿里云 DNS 控制台 添加解析记录。

  1. 进入 阿里云控制台公网 DNS 解析权威域名解析
  2. 选择你的域名,点击 添加记录新手引导
  3. 记录类型CNAMEA
  4. 主机记录 选择:
    • www(用于 www.yourdomain.com
    • @(用于 yourdomain.com)。
  5. 记录值 中填写你的 GitHub Pages 地址,例如:artintyt.github.io
  6. 点击 保存
  7. 具体参考下面格式:只需要修改你的 Github Pages 地址即可,其他不变。
    • 根域名 @ 设置 A 记录,指向 GitHub Pages 的 IP 地址。确保你添加以下四条 A 记录:

      • 185.199.108.153
      • 185.199.109.153
      • 185.199.110.153
      • 185.199.111.153
    • 设置 www 子域名的 CNAME 记录,指向 artintyt.github.io(你的 GitHub Pages 地址)。

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

2.2 生成 CNAME 文件

如果你的博客使用自定义域名(如 neurowave.tech),你需要在 source/ 目录下创建 CNAME 文件:

1
echo "neurowave.tech" > source/CNAME

然后提交到 main branch:

1
2
3
git add source/CNAME
git commit -m "Add CNAME file"
git push origin main

你也可以手动创建一个叫 CNAME 文件到 source/

2.3 确保 CNAME 在 Hexo 部署时不会丢失

在 Hexo 的 _config.yml 文件中,确保 deploy 部分包含 cname 和你的自定义域名:

1
2
3
4
5
6
deploy:
type: git
repo:
branch: gh-pages # 你的 GitHub Pages 分支
message: "Deploy blog updates"
cname: neurowave.tech # 自定义域名

2.4 在 GitHub Pages 启用自定义域名

  1. 进入 GitHub 仓库SettingsPages
  2. Custom domain 输入 neurowave.tech
  3. 勾选 "Enforce HTTPS",确保 HTTPS 正常工作。
  4. 等待 GitHub 解析你的域名,通常需要几分钟。

2.5 添加 TXT 记录用于域名认证

  • GitHub Pages 要求你在 DNS 中添加一个 TXT 记录 来验证你对域名的所有权。以下是你需要在 Cloudflare DNS 中添加的记录:

    • 在 Cloudflare DNS 配置页面 中,添加 TXT 记录:
    • 主机记录:@(根域名)
    • 记录类型:TXT
    • Name类似: github-pages-challenge-artintyt="xxxx-xxxx-xxxx"
    • Content类似: "adfsaskdfjsdjxxfjdksj"
  • 保存配置并等待生效。

  • 可以通过 dnschecker.org 检查 TXT 记录是否已经传播到全球 DNS。

  • 你可以参考 GitHub 官方文档的详细步骤:GitHub Pages 配置域名验证

重要提示:防止域名盗用:
为了 防止域名被盗用,确保你按照 GitHub 的要求在 DNS 中添加正确的 TXT 记录,通过 GitHub 验证你对域名的所有权。这个步骤可以防止他人伪造和篡改你的域名配置,从而保护你的站点不受恶意攻击。

在完成 TXT 记录配置后,GitHub 会自动检测并验证你对域名的所有权。这样不仅确保了你对域名的控制权,还提升了安全性。

3. 提交并触发 GitHub Actions

执行以下命令,将 deploy.yml 配置文件提交到 GitHub:

1
2
3
git add .github/workflows/deploy.yml
git commit -m "Add GitHub Actions for Hexo deployment"
git push origin main # 如果你的远程分支是 main

推送代码后,GitHub Actions 会自动执行部署。

4. 检查 GitHub Actions 是否成功

  • 查看 Actions 运行状态

    1. 打开 GitHub 仓库。
    2. 点击 Actions 选项卡。
    3. 查看最新的 Workflow 运行记录。
    4. 如果显示绿色 ✅,说明部署成功;如果失败,则查看日志分析问题。
  • 访问你的博客
    GitHub Pages 更新可能需要几分钟,稍等后访问:https://neurowave.tech 如果看到最新内容,说明部署成功!🎉

5. 本地更新博客并推送

当你本地修改博客内容后,使用以下命令提交并触发 GitHub Actions:

1
2
git add .
git commit -m "Update blog content"

然后清除缓存,生成新的静态页面,并部署到 Github:

1
2
hexo clean && hexo generate 
hexo deploy

6. 总结

  • 配置 GitHub Actions,让博客自动部署。
  • 创建 CNAME 文件,并确保 Hexo 部署时不会丢失自定义域名
  • 每次 hexo deploy,GitHub Actions 自动触发部署
  • GitHub Pages 自动更新,无需手动运行 git push

这样,你的 Hexo 博客就实现了 全自动化部署,并且保留自定义域名 🎉!


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

5.配置自定义域名
http://neurowave.tech/2025/01/17/1-5-配置自定义域名/
作者
Artin Tan
发布于
2025年1月17日
更新于
2025年7月7日