Heroku上的自定义根域

时间:2013-05-18 21:05:36

标签: heroku dns

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

Heroku says

  

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

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

对于如何为“假人”实现这一点,还有其他方法或解释吗?

3 个答案:

答案 0 :(得分:27)

我会对此进行抨击,因为这是一个经常出现的问题。

好的,假设你有一个域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到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。对于新的欧盟地区,Heroku不会发布用于裸域的IP地址。

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

答案 1 :(得分:3)

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

CloudFlare还提供了许多其他好处。我一直在将它们用于我的所有Heroku应用程序,我很高兴诚实。

到目前为止,他们从我的经验中免费提供了很多价值。

答案 2 :(得分:-3)

如果查看DNS记录规范,您将找不到像ANAME这样的记录。

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

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

P.S。它有效,并且不会让你为神秘的DNS记录浪费钱