65.9K
CodeProject 正在变化。 阅读更多。
Home

仅使用一个 A 记录配置 GitHub Pages/Read the Docs 的 DNS 设置

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2017 年 2 月 26 日

CPOL

3分钟阅读

viewsIcon

6570

仅使用一个 A 记录配置 GitHub Pages/Read the Docs 的 DNS 设置

最近,我为我的一个新项目设置了一个新网站。我想使用 GitHub Pages 作为网站,并使用 Read the Docs 作为文档,两者都使用同一个自定义域名(以及该自定义域名的子域名)

如果您是一位经验丰富的 DNS 记录创建者,您可能非常清楚如何操作,并且根本不需要这篇文章中的信息。

但我以前从未接触过 DNS 设置,而且显然有些事情因您的提供商而异,所以我陷入了困境,不得不求助于 Google 和我的提供商的支持。

我的提供商是 all-inkl.com,以下是他们在管理面板中的默认 DNS 设置

default DNS settings

Read the Docs

Read the Docs 部分简单明了。

我按照文档创建了一个名为 docs 的 CNAME 记录,它指向 readthedocs.io

(以及在 RTD 管理页面中添加域名)足以使 docs.scm-backup.org 解析到 scm-backup-docs.readthedocs.io

GitHub Pages

GitHub Pages 关于自定义域名的文档告诉我

这就是我陷入困境的地方 - 我的提供商不支持 ALIAS/ANAME 记录,所以我不得不退回到第二种选择 - 创建两个 A 记录。

如果您查看顶部屏幕截图上的默认 DNS 设置,您可以看到已经有两个 A 记录指向相同的 IP:一个没有名称,另一个名为 *

名为 * 的记录是通配符记录,它与第一个记录同步:无法更改通配符记录本身,并且更改第一个记录会自动更改通配符记录。

因此,在将现有的 A 记录(和通配符记录)更改为 GitHub 提供的第一个 IP 后,该域名已经解析到 GitHub Pages 站点。

但 GitHub 帮助提供了 两个 IP,所以我尝试为第二个 IP 创建第二个没有名称的 A 记录。这失败了,因为根据错误消息,该记录已经存在。

在此时(以及阅读了 GitHub Pages 和我的提供商的文档,以及一些 Google 搜索之后),我通过电子邮件联系了我的提供商支持和 Github 支持,现在我知道了

  1. 我的提供商仅支持一个 A 记录。

  2. 要使自定义域名成功解析到 GitHub Pages,创建 GitHub Pages 的两个 IP 中的一个A 记录就足够了。
    第二个 IP 的第二个 A 记录不是绝对必要的,GitHub 提供第二个 IP 只是为了可用性。

  3. 用于 www 子域名的 CNAME 记录 需要指向 christianspecht.github.iochristianspecht 是我的 GitHub 用户名),即使 包含我的站点的 repo 不是用户页面 repo。
    起初我很困惑,因为根据这个图表,我以为我需要指向 christianspecht.github.io/scm-backup-site,但 GitHub 支持人员告诉我

    我们的 Pages 服务器会自动根据您的自定义域名将请求路由到正确的存储库,因此您只需使用 christianspecht.github.io

完成的设置

以下是我当前的 DNS 设置

finished DNS settings

我知道仅设置一个 A 记录不是理想的解决方案,并且如果 192.30.252.153 永远不可用(而 192.30.252.154 仍然可用),可能会导致我的网站离线。

但这是为一个新项目准备的,我不知道它是否会成功,而且我为我的提供商支付的计划无论如何都包含五个域名,所以这个域名对我来说实际上是免费的。所以现在我不会将它转移到另一个提供商(并为其付费),仅仅是为了能够设置第二个 A 记录。

© . All rights reserved.