如何解决:Domain无法解析到GitHub Pages服务器。启用了HTTPS的自定义域设置在Github Pages中出错?

Ati*_*Ali 7 dns cname github jekyll github-pages

所以我试图获得一个自定义域以与我的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的博客,我已经检查了它在我开始此过程之前已成功编译)

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

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

A记录:

example.com。21460在A 185.199.111.153

example.com。21460英寸185.199.109.153

example.com。21460英寸185.199.110.153

example.com。21460英寸185.199.108.153

CNAME:

www.example.com。7199 IN CNAME用户名.github.io。

如预期的那样。

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

Domain无法解析到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子域和根域重定向。

我不知道该如何解决。我怀疑这可能是问题的原因。因此,解决方案可能是规避此重定向,我只是不知道该怎么做。

Hug*_*lpz 35

Github 向我显示了连续的错误消息。经过多次迭代,github 满意如下:

  1. 在“设置”>“页面”中:设置您的 github 页面:(
    您将看到一些错误警告消息,并且一开始不会勾选强制 HTTPS) 在此输入图像描述

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

www.example.com
Run Code Online (Sandbox Code Playgroud)
  1. 在我的域名注册的 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
Run Code Online (Sandbox Code Playgroud)
  1. 等一天,享受户外散步。

  2. 该网站正常,在我的终端中,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
Run Code Online (Sandbox Code Playgroud)
  1. 勾选“强制使用 HTTPS”。

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

  • “等一天,享受户外散步。” - 感谢您拯救了我的理智,这是最​​重要的一步。尽管 dig 命令已经在几个小时内得到了正确的输出,并且我的域在 github 上运行良好,但实际的验证设置仅在大约 20 小时后才开始工作。 (7认同)

Ati*_*Ali 10

对于任何绊脚石。实际上,我意识到我已经概述了使用Github Pages进行设置的正确方法。这符合Github到目前为止的建议,并且效果很好。只要确保您等待DNS传播生效,在某些情况下可能最多需要24小时。这就是我的问题所在。

  • @Adam_G 是的,绝对可以,您可以在以下网站上检查 A 和 CNAME 记录:https://www.whatsmydns.net/、https://dnschecker.org/、https://dnsmap.io/ 和还有更多。基本上,我相信服务器上的这些设置有一个超时时间,并且在大多数情况下默认为 24​​ 小时(我可能是错的,所以要小心) (2认同)
  • 如果我理解正确的话,DNS 传播是由“生存时间”或 TTL 值控制的,它本质上决定了在请求新条目之前该 DNS 条目应缓存多长时间的寿命。该值可以在您的问题的条目中看到(`example.com.21460 IN A 185.199.111.153`),TTL 值为 21460 秒(几乎 6 小时)。等待 24 小时仍然是理想的选择,但这也是一个不错的估计,可以估计 github 服务器上的 DNS 条目的缓存版本到期并获取新的(和更新的)条目之前需要多长时间 (2认同)