系列文章 — GitHub学习教程(五):个人网站使用自定义域名
GitHub Pages 支持使用自定义域名,或者将网站的 URL 根目录从默认值(如 octocat.github.io )更改为你拥有的任何域名。
1. 前提条件
一个已部署的 GitHub Pages 网站(详情可点击文末“阅读原文”,参照前文GitHub学习教程(四):GitHub Pages 创建个人静态网站)
一个您拥有的自定义域名(例如 example.com )
对域名提供商的 DNS 管理面板有访问权限
2. 步骤概览
购买并注册自定义域名
在域名提供商的 DNS 管理面板中配置 DNS 记录,将域名指向 GitHub Pages
在 GitHub 仓库中添加一个 CNAME 文件,包含自定义域名
在 GitHub 仓库的设置中配置自定义域名
验证域名所有权(如有必要)
启用 HTTPS,确保网站安全访问
3. 详细步骤
步骤 1:购买和注册域名
可以在以下域名注册商购买:
国内:阿里云、腾讯云、百度云
国际:GoDaddy、Namecheap、Google Domains、Bluehost
购买域名的流程通常包括选择域名、支付费用、注册和登录管理面板。
步骤 2:配置域名的 DNS 记录
为了将您的域名指向 GitHub Pages,您需要在域名注册商的 DNS 管理面板中添加 A 记录(适用于顶级域名)或 CNAME 记录(适用于子域名)。
2.1 登录域名注册商的 DNS 管理面板
登录您的域名注册商账户。
进入 DNS 管理(可能被称为“DNS 设置”、“DNS 管理器”或“域名解析”等)。
2.2 添加 A 记录
当使用顶级域名(如 example.com )时,需要添加 A 记录。
什么是 A 记录?
A 记录(Address Record)将域名直接映射到 IPv4 地址。在这里,我们将顶级域名指向 GitHub Pages 的 IP 地址。
🔺 添加新的 A 记录
▪ 在 DNS 设置页面,找到 “添加记录” 或 “新增记录” 的按钮,点击它。
🔺 填写 A 记录信息
▪ 主机记录(或名称): 输入 @
▫ @ 表示顶级域名(即 example.com ),不需要添加子域名部分。
▪ 记录类型: 选择 A
▫ 从下拉菜单中选择 A 记录类型。
▪ 记录值(或 IP 地址): 输入 GitHub Pages 的 IP 地址
▫ 您需要添加以下四个 IP 地址,分别创建四条 A 记录:
说明:
添加多个 A 记录指向不同的 IP 地址,可以提高网站的可靠性和可用性。
GitHub Pages 使用了全球分布式的服务器,这些 IP 地址对应不同的服务器。
2.3 添加 CNAME 记录
当使用子域名(如 www.example.com )时,需要添加 CNAME 记录。
什么是 CNAME 记录?
CNAME 记录(Canonical Name Record)将一个域名别名指向另一个域名。在这里,我们将子域名指向 GitHub 提供的用户名域名(如 username.github.io )。
说明:
将 username 替换为您的 GitHub 用户名。
www 表示子域名部分。
如果您想将其他子域名(如 blog.example.com )指向 GitHub Pages,同样可以添加对应的 CNAME 记录。
确保主机记录只包含子域名部分,不包含整个域名。
2.4 保存 DNS 记录
确保所有记录已正确添加
检查您添加的 A 记录和 CNAME 记录,确保主机记录、记录类型和记录值无误
保存 DNS 设置
有些域名注册商可能需要您点击 “保存所有更改” 或 “应用更改”,请确保完成此操作
注意:DNS 记录的更新可能需要一定时间(通常为几分钟到 48 小时)才能在全球范围内生效。
2.5 常见问题
1. 顶级域名和子域名的组合使用
如果希望同时使用顶级域名( example.com )和子域名( www.example.com )指向的 GitHub Pages 网站,需要同时添加 A 记录和 CNAME 记录。
注意: 顶级域名不能有 CNAME 记录,因此需要使用 A 记录指向 IP 地址。
2. 旧的 DNS 记录可能导致冲突
在添加新的 DNS 记录之前,检查是否存在旧的 A 记录或 CNAME 记录,这些记录可能与新的记录冲突,导致域名解析错误。
删除或更新旧的 DNS 记录,以确保新的配置生效。
3. DNS 解析生效时间
DNS 记录的生效时间取决于域名注册商和 ISP,通常为几分钟到 48 小时。
4. 配置根域名的特殊情况
如果域名注册商不支持为根域名添加 A 记录,可以考虑使用 ALIAS 或 ANAME 记录,这些记录允许您将根域名指向另一个域名。
注意: 并非所有域名注册商都支持 ALIAS 或 ANAME 记录。
步骤 3:在 GitHub 仓库中添加 CNAME 文件
在 GitHub Pages 仓库的根目录下创建一个名为 CNAME 的文件(无扩展名),文件内容为自定义域名。
示例:
如果的自定义域名是 www.example.com ,则 CNAME 文件内容为:
www.example.com
如果使用的是顶级域名 example.com ,则内容为:
example.com
步骤 4:在 GitHub 上配置自定义域名
4.1 进入仓库设置
在 GitHub 上,进入您的仓库,点击页面顶部的 “Settings”(设置)。
4.2 配置 GitHub Pages
在左侧菜单中,找到 “Pages”,点击进入。
4.3 设置自定义域名
在 “Custom domain” 部分,输入您的自定义域名,例如:
www.example.com
点击 “Save” 按钮。
4.4 验证域名状态
保存后,GitHub 会自动检查您的 DNS 设置。
如果配置正确,您会看到一条绿色的提示,表示您的自定义域名已成功配置。
注意: 如果 GitHub 提示您的域名配置有问题,请检查 DNS 记录是否正确,以及是否已生效。
步骤 5:验证域名所有权(如有必要)
在某些情况下,GitHub 可能要求验证域名的所有权:需要在 DNS 设置中添加一条 TXT 记录。
5.1 获取验证记录
在 GitHub Pages 设置页面,如果需要验证域名所有权,GitHub 会提供一条 TXT 记录的值。
5.2 添加 TXT 记录
回到域名注册商的 DNS 管理面板。
添加以下 TXT 记录:
保存设置,等待生效。
步骤 6:启用 HTTPS
为了确保您的网站安全,建议启用 HTTPS。
6.1 启用 HTTPS
在 GitHub Pages 设置页面,找到 “Enforce HTTPS” 选项。
勾选 “Enforce HTTPS”,强制使用 HTTPS 访问您的网站。
6.2 等待证书颁发
GitHub 会自动为您的自定义域名颁发 SSL 证书。
可能需要几分钟到几个小时。
可以刷新页面查看 HTTPS 状态。
4. 常见问题和注意事项
问题 1:DNS 解析未生效
确保已正确添加了所有必要的 DNS 记录。
检查是否有旧的或冲突的 DNS 记录(如旧的 A 记录或 CNAME 记录)。
使用 DNS 查询工具(如 dig 或在线工具)检查 DNS 解析情况。
等待足够的时间(可能需要 24-48 小时)让 DNS 记录完全生效。
问题 2:GitHub Pages 提示域名配置错误
确保 CNAME 文件内容与您在 GitHub 设置中输入的自定义域名一致。
检查 DNS 记录是否正确,特别是主机记录和记录类型。
如果使用子域名,请确保没有 A 记录冲突。
问题 3:HTTPS 无法启用
确保 DNS 记录已正确配置并完全生效。
检查 GitHub Pages 设置页面,看看是否有关于证书颁发的错误信息。
等待一段时间,证书颁发可能需要一些时间。
问题 4:网站无法访问或显示错误页面
确保仓库已成功构建并部署了 GitHub Pages。
检查您的 index.html 或其他主页文件是否存在并正确命名。
查看 GitHub Pages 构建日志(在仓库的 Actions 选项卡)以查找可能的错误。
5 结果示例
参考资料:GitHub Pages 官方文档 - 使用自定义域名
https://docs.github.com/zh/pages/configuring-a-custom-domain-for-your-github-pages-site
招募要求
完成符合要求的机器人相关视频制作
总时长需达到 3小时以上
视频内容需为精品课程,确保高质量和专业性
讲师奖励
享受课程收入分成
赠送 2门 古月学院在售精品课程(训练营除外)
联系我们
添加工作人员微信:GYH-xiaogu
点击“阅读原文”查看详情