如何修复:域无法解析到 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.com
和 MYUSERNAME
替换为与您相关的值。
【讨论】:
以上是关于如何修复:域无法解析到 GitHub Pages 服务器。启用强制 HTTPS 的自定义域设置的 Github 页面出错?的主要内容,如果未能解决你的问题,请参考以下文章