在Heroku自定义根域



我有一个域名,example.com,我想使用我的rails应用程序驻留在example.herokuapp.com,我很困惑如何去做这个。

英雄说

"区域顶点域(又名"裸"、"裸"或"根"域),例如:不支持使用常规DNS a记录的example.comHeroku。"然后他们继续解释变通方法(使用别名或家乡)。

我已经花了一个小时来阅读这个主题(在SO和其他地方),但仍然不明白这一点。

是否有其他方法或解释如何实现这一"假人"?

我来试一试,因为这是一个常见的问题。

好的,假设你有一个域名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到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我知道是一个)所做的是将自己的别名记录添加到他们的DNS服务器上,允许您使用CNAME与裸域,因此www.example.com和example.com都将像现在由Heroku支持的那样工作。如果您的DNS提供商不支持ALIAS记录,那么值得将域转移到支持它的DNS提供商。DNSsimple还支持重定向记录,因此您可以将www.example.com重定向到DNS提供商级别的example.com,而不是在您的应用层。

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

CloudFlare还提供了一大堆其他好处。我在我所有的Heroku应用中都使用了它们,说实话我很高兴。

根据我目前的使用经验,它们提供了很多免费的价值。

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

解决这个问题的最好方法是:在你的heroku应用程序中为www子域添加CNAME条目,并为根域添加CNAME记录到www子域。

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

注:它可以工作,并且不会让您为神秘的DNS记录浪费钱

最新更新