如何将域指向托管在 github 页面上的站点?

Posted

技术标签:

【中文标题】如何将域指向托管在 github 页面上的站点?【英文标题】:How to point domain to site hosted on github pages? 【发布时间】:2012-08-04 15:36:44 【问题描述】:

我已经创建了一个网站,并将其放在 github 上的 repo 中,名称为 USRNAME.github.com。首先,当我访问该网站时,我的网站显示正确。然后我买了一个域名,比如说example.com。我在 repo 中放置了一个 CNAME 文件,所以现在 USRNAME.github.com 转发到 example.com。

我知道我必须将我的域指向 github 服务器才能让我的网站在 example.com 上显示,但我不确定如何。我通过 gandi.net 创建了该站点。我尝试编辑区域文件以使用 USRNAME.github.com 获得 CNAME 条目,但这不起作用。我还尝试编辑 DNS 服务器名称,但我在那里放置的条目似乎无效。

任何帮助将不胜感激。谢谢。

【问题讨论】:

您是否读到:“您的 DNS 更改可能需要一段时间才能传播,请耐心等待”? 【参考方案1】:

您需要设置一个指向 github 服务器的 A 记录。您说您使用的是 gandi.net,所以基本上您可以通过添加(或修改)一条指向 github 的 A 记录来更改***域的 DNS 设置。

如果需要,您可以通过在 DNS 中添加 CNAME 以指向***域或再次指向 github 的 A 记录来添加子域(如 www.)。

【讨论】:

【参考方案2】:

如您所见,github端的CNAME文件必须通过registrar端的自定义DNS设置完成,才能完成您的域名(example.com)与github上的子域的匹配。 github 需要 CNAME 文件将其自己的 DNS 区域 (192.30.252.153) 上的传入请求路由到正确的用户子域。

因此,缺少的步骤是让您的域实际指向 github 的 DNS 区域。在注册商方面 (gandi.net),您可以通过编辑附加到您的域的 DNS 区域文件来实现。此区域文件描述了您的域所属的 DNS 区域的分层域名结构。您要做的是更改 DNS 区域的某些部分与 IP 之间的映射。当您想将基于***域名的域名指向任意 IP v4(这里是位于 192.30.252.153 的 github 的 DNS 区域)时,您有兴趣在您的自己的区域。

gandi.net 的具体答案:

前往https://www.gandi.net/admin/domain 点击您要使用的域名 在其管理页面底部的“区域文件”下,单击“编辑区域”

您可以在此处查看区域文件的设置列表。 Gandi 的一项新功能是“版本”:可以创建不同版本的区域文件,并且一次只有一个版本处于活动状态。

要调整 github 的区域文件,首先单击“创建新版本”。它只会创建当前激活版本的副本。

首选的连接方式是添加一个新的 CNAME 映射,从 *.yourdomain.tld 到 youraccount.github.io。比如我的 kaibun.net 域必须是 chikamichi.github.io 的门面,所以我添加了一个 CNAME 映射 *.kaibun.net 到 chikamichi.github.io。 (最后一个点在 gandi 的配置中是强制性的)。

您可能还想编辑 * 和 @ 记录类型设置,例如,如果您只想让整个 DNS 区域表现得像“代理”(这意味着无论如何它都会“重定向”到您的 github 子域) .但这不是必需的,因此此步骤是可选的。我假设您仍处于正常编辑模式。单击 * 行右侧的钢笔图标。保持所有字段不变,但“值”之一:粘贴 github URI(github 文档建议使用 204.232.175.78;但您可能在 Internet 上找到了不同的值:不要使用它们)。验证,然后对 @ 行进行相同的操作。

准备好后不要忘记点击“激活此版本”。检查“活动版本号”是否正确。更改需要一些时间才能传播。

详细示例和过程:http://wiki.gandi.net/dokuwiki/en/dns/zone/a-record

【讨论】:

Github 提到使用 alias 记录比直接指向 IP 地址更好,这样您就可以利用他们的 CDN (help.github.com/articles/setting-up-a-custom-domain-with-pages)。 gandi 允许你这样做吗?如果有,怎么做? 我询问了 Gandi 客户支持,我听到的是:Gandi 目前仅在我们的区域文件中使用标准 BIND 条目。我们不使用第三方条目,例如 ALIAS 或 ANAME。如果您希望看到 Gandi 支持 ALIAS 记录,请将此想法添加到 gandi.net/domain/wishlist 我们未来的发展受到客户需求的影响。如果我们看到人们对 ALIAS 记录很感兴趣,我们将努力实现这一目标。如果有任何原因我们不能,将在不兼容部分中公开说明原因。 找到了一个您现在可以使用的更好的解决方案:只需转移到 CloudFlare 来管理您的 DNS。 CloudFlare 正式支持根目录下的 CNAME(请参阅 support.cloudflare.com/hc/en-us/articles/… 和 blog.cloudflare.com/…)。而且它是免费的!我自己一直在使用它,它一直像魅力一样工作。 他们会支持吗?当我设置一些heroku应用程序时,最终不得不使用它;我所有的域名都在 gandi 上:/

以上是关于如何将域指向托管在 github 页面上的站点?的主要内容,如果未能解决你的问题,请参考以下文章

使用 DNS 记录将域指向 Adob​​e Business Catalyst 托管

为啥我的 Github 托管站点响应 HTTP 302 而不是 200?

如何将域指向路径或路由? AWS Elastic BeanStalk 和 Route 53

如何将域定向到它在 apache htaccess 中指向的服务器上的子文件夹

如何将 godaddy ssl 证书添加到托管在 aws ec2 上的站点

如何将域连接到 XAMPP