如何修复:域无法解析到 GitHub Pages 服务器。启用强制 HTTPS 的自定义域设置的 Github 页面出错?

Posted

技术标签:

【中文标题】如何修复:域无法解析到 GitHub Pages 服务器。启用强制 HTTPS 的自定义域设置的 Github 页面出错?【英文标题】:How to fix: Domain does not resolve to the GitHub Pages server. Error in Github Pages for custom domain setup with Enforce HTTPS Enabled? 【发布时间】:2019-06-01 05:20:15 【问题描述】:

所以我正在尝试让 自定义域与我的 github 页面 用户站点一起使用。我几乎遵循了以下标准程序:(这里也由 github 推荐:https://help.github.com/articles/setting-up-an-apex-domain-and-www-subdomain/)。注意我需要顶点域 (example.com) 和 www 子域 (www.example.com) 来解析我的 github 页面用户站点 username.github.io (该网站本身是一个基于 jekyll 的博客并且在我开始这个过程之前我已经检查过它是否编译成功)

    我在注册商的 DNS 记录中添加了一个 A 记录,指向 Github 从***域 example.com 提供的所有四个 IP 地址: 185.199.108.153 185.199.109.153 185.199.110.153 185.199.111.153 接下来我进入并为指向 username.github.io 的 www 子域添加了 CNAME 记录 然后我终于在存储库的设置选项卡下启用了自定义域 example.com(在 Github Pages > Custom Domain 下),并且在大约启用后启用了 Enforce HTTPS 选项一个小时。

我已尝试联系我的注册商,他们说 DNS 记录中的所有内容似乎都很好,他们得到以下结果:

A 记录:

example.com。 21460 IN A 185.199.111.153

example.com。 21460 IN A 185.199.109.153

example.com。 21460 IN A 185.199.110.153

example.com。 21460 IN A 185.199.108.153

CNAME:

www.example.com。 7199 IN CNAME username.github.io.

正如预期的那样。

但我仍然在 github 中收到以下错误(在存储库的设置选项卡下):

域无法解析到 GitHub Pages 服务器。有关详细信息,请参阅https://help.github.com/articles/setting-up-a-custom-domain-with-github-pages/。

当我尝试通过键入 example.com 或 www.example.com 访问该站点时,浏览器会重定向到 https://example.com/ 并且我收到错误(在 Chrome 上):

ERR_CONNECTION_REFUSED

请注意,github 的文档中有一条警告说:

警告:如果您的域启用了 HTTPS 强制,GitHub Pages 的服务器将不会自动路由重定向。您必须通过域注册商配置 www 子域和根域重定向。

我不知道如何解决这个问题。我怀疑这是问题的可能原因。所以一个解决方案可能是绕过这个重定向,我只是不知道我会怎么做。

【问题讨论】:

等待 DNS 传播一段时间,htpps://atifali.ca 工作正常。 是的,刚刚意识到这是唯一的问题。不过谢谢! @DavidJacquel 我想知道您实际上是如何获得该域地址的?只是好奇,因为我尝试通过删除任何特定的 URL 来使其尽可能通用……这仅仅是猜测吗?只是好奇哈哈 我是一名训练有素的调查员。文有人问了一个太笼统的问题,无法调试,我搜索一下。通常,我会在个人资料页面上开始搜索。在你的情况下,这很容易。 ;-) 好吧@DavidJacquel 我尊重你的承诺水平!这个世界需要更多像你这样的人!谢谢队友:) 【参考方案1】:

对于任何偶然发现这一点的人。实际上我意识到我已经概述了使用 Github Pages 进行设置的正确方法。这与 Github 迄今为止推荐的内容一致,并且运行良好。只需确保等待 DNS 传播生效,在某些情况下可能需要长达 24 小时。这就是我的问题所在。

【讨论】:

有没有办法知道 DNS 设置何时传播? @Adam_G 是的,您可以在以下网站上同时查看 A 和 CNAME 记录:whatsmydns.net、dnschecker.org、dnsmap.io 等等。基本上,我相信服务器上的这些设置会超时,在大多数情况下,它默认为 24​​ 小时(我可能错了,所以要小心) DNS 传播——如果我理解正确的话——受“生存时间”或 TTL 值的控制,这基本上决定了在请求新的 DNS 条目之前应该缓存多长时间的生命周期.此值可以在您的问题 (example.com. 21460 IN A 185.199.111.153) 的条目中看到,TTL 值为 21460 秒(近 6 小时)。等待 24 小时仍然是理想的,但这也是对 github 服务器上的 DNS 条目的缓存版本过期并获取新的(和更新的)之前需要多长时间的一个不错的估计 在我的情况下,CNAME 文件在我的网站上没有“www”。我添加后它起作用了。【参考方案2】:

Github 向我显示了连续的错误消息。经过几次迭代,github 对以下内容感到满意:

    在“设置”>“页面”中:设置您的 github 页面: (您将收到一些错误警告消息,并且一开始不会勾选 Enforce HTTPS)

    在我的 github 存储库的根目录上,一个带有网站名称的 CNAME 文件(带有 www):

www.example.com
    在我的域注册的 DNS 上:
www                     28800  CNAME  MYUSERNAME.github.io.
@                       21460  A      185.199.111.153
@                       21460  A      185.199.109.153
@                       21460  A      185.199.110.153
@                       21460  A      185.199.108.153

    等一天,享受户外散步吧。

    网站正常,在我的终端中,dig 命令返回:

$dig WWW.example.com +nostats +nocomments +nocmd
;WWW.example.com.   IN  A
WWW.example.com.    26728 IN CNAME  MYUSERNAME.github.io.
MYUSERNAME.github.io.   1527    IN  A   185.199.108.153
MYUSERNAME.github.io.   1527    IN  A   185.199.111.153
MYUSERNAME.github.io.   1527    IN  A   185.199.110.153
MYUSERNAME.github.io.   1527    IN  A   185.199.109.153
    勾选“强制 HTTPS”。

注意:将 example.comMYUSERNAME 替换为与您相关的值。

【讨论】:

以上是关于如何修复:域无法解析到 GitHub Pages 服务器。启用强制 HTTPS 的自定义域设置的 Github 页面出错?的主要内容,如果未能解决你的问题,请参考以下文章

无法更改 GitHub Pages 中的源分支

github pages CNAME 文件可以包含多个域吗?

找不到模块:无法解析“./pages”编译失败

github pages与travis ci运作原理

如何修复 Github 页面上的 HTTP 404?

如何使用 Github pages 建立托管个人网站 - 更新于 2017.10.13 (部分搬运)