12

我有一个域 example.com,我想将它用于我的 rails-app,它位于 example.herokuapp.com,我很困惑如何去做。

Heroku 说

“Heroku 不支持使用传统 DNS A 记录的区域顶级域(又名“裸”、“裸”或“根”域),例如 example.com。” 然后他们继续解释解决方法(使用 ALIAS 或 ANAME)。

我花了一个小时阅读这个主题(这里是 SO 和其他地方),但仍然没有理解这一点。

关于如何为“假人”完成此任务,是否有任何替代方法或解释?

4

3 回答 3

31

我会对此进行尝试,因为这是一个常见问题。

好的,假设您有一个域 example.com,并且您想使用 www.example.com 来托管您的网站。在传统主机中,您可能有一个分配了 IP 地址的虚拟服务器,在这种情况下,您将使用主机记录,也称为 DNS 控制面板中的 A 记录,将 www.example.com 映射到 IP 地址. 在这种情况下,由于您现在已将 www.example.com 设置为固定 IP 地址,因此如果 IP 地址发生变化,您将需要自己更新 DNS。

此外,对于传统托管,您可以将 example.com 设置为相同的 IP 地址,因此 www.example.com 和 example.com 将适用于裸域。

好的,那么什么是 CNAME 记录。CNAME 记录而不是映射到 IP 地址,而是将记录映射到另一个 DNS 条目。因此,www.example CNAME'd to example.herokuapp.com 意味着 Heroku 可以并且可能会移动到 example.herokuapp.com 指向的位置,但您无需更新任何内容,因为您使用的是 CNAME 记录,而 Heroku 是管理 example.herokuapp.com 指向的位置(可以是另一个 CNAME 或 IP 地址)。CNAME 记录的问题在于它们不能指向 IP 地址,这对于 www.example.com 来说很好,但对于 example.com 来说是个问题。Heroku 之前发布了用于裸域的 IP 地址,但当它们遭受 DDOS 攻击并且无法用新 IP 地址替换这些 IP 地址时出现问题,因为它们是发布的 IP 地址。对于新的欧盟地区,

几个 DNS 提供商(我知道的 DNSsimple 就是其中之一)所做的就是将他们自己的 ALIAS 记录添加到他们的 DNS 服务器中,以允许您将 CNAME 与裸域一起使用,因此 www.example.com 和 example.com 都可以像 Heroku 现在支持的那样工作. 如果您的 DNS 提供商不支持 ALIAS 记录,那么值得将域移至支持它的 DNS 提供商。DNSsimple 还支持重定向记录,因此您可以在 DNS 提供商级别而不是在您的应用程序层将 www.example.com 重定向到 example.com。

于 2013-05-20T07:50:06.027 回答
3

找到这个: http: //blog.cloudflare.com/zone-apex-naked-domain-root-domain-cname-supp

CloudFlare 还提供了一大堆其他好处。我一直将它们用于我所有的 Heroku 应用程序,老实说,我很高兴。

根据我迄今为止的经验,它们免费提供了很多价值。

于 2014-01-14T22:57:36.093 回答
-3

如果您查看 DNS 记录规范,您会发现没有像 ANAME 这样的记录。

解决此问题的最佳方法是:将 www 子域的 CNAME 条目添加到您的 heroku 应用程序,并将根域的 CNAME 记录添加到 www 子域。

  • www.domain.com。3600 IN CNAME app.herokuapp.com。
  • @ 3600 IN CNAME www.domain.com。

PS 它有效,并且不会让您为神秘的 DNS 记录浪费金钱

于 2013-08-03T23:36:19.330 回答