如何配置Heroku应用程序DNS到Godaddy域?


99

我创建了一个heroku应用程序,并希望从godaddy.com为其提供域名。

我已经配置了heroku提供的所有三台主机,但是现在出现错误提示:

Heroku | 没有这样的应用程序

在该主机名上没有配置任何应用程序。

应用所有者可能已将其重命名,或者您输入了错误的URL。

我想知道:还有其他方法可以配置heroku应用程序吗?

更新:新方法 请使用此链接进行新方法。接受的答案是旧功能。

Answers:


74

我使用此视频广播与Heroku一起建立了GoDaddy域,并且效果很好。很清楚,也很好解释。

注意:跳过有关CNAME的部分yourdomain.com.(请注意.)和heroku addons:add "custom domains"

http://blog.heroku.com/archives/2009/10/7/heroku_casts_setting_up_custom_domains/


总结视频:

1)在GoDaddy上创建一个CNAME

Alias Name: www
Host Name: proxy.heroku.com

2)通过host www.yourdomain.com在命令行上输入来检查您的域是否已传播

3)运行 heroku domains:add www.yourdomain.com

4)运行 heroku domains:add yourdomain.com

经过这些步骤,它对我有用。希望它也对您有用!

更新:事情已经改变,请查看此帖子Heroku / GoDaddy:将裸域发送到www


1
好帖子。这就是端到端的需求。我正要发布此链接。
2012年

1
我是webdev的新手,很抱歉,如果这个问题有点儿基本知识,但是我是否保留或删除带有别名www和主机名的默认CNAME @?编辑:糟糕,似乎只有一个可以存在。
2013年

1
自2019年2月起,这将不起作用,除非您很早就要求退款,否则GoDaddy将保留您支付给他们的所有费用。Heroku确实保留了推荐的DNS提供商列表。此处的更多信息:devcenter.heroku.com/articles/custom-domains
Matt West

83

您需要执行2个步骤,

  1. 添加自定义域插件,然后将要使用的域添加到您的应用程序中,例如www.mywebsite.com
  2. 假设您使用的是CEDAR堆栈,请转到您的域名注册商控制面板,并将www.mywebsite.com设置为yourapp.herokuapp.com的CNAME条目。
  3. 如果要使用裸域(例如mywebsite.com),则必须执行第三步,这时必须将Heroku负载均衡器的IP地址添加到mywebsite.com的DNS中

您可以在http://devcenter.heroku.com/articles/custom-domains上了解有关此内容的更多信息。

猜想您是否错过了第一步?

更新:Bamboo应用程序的Bamboo的EOL proxy.heroku.com即将退休(2014年9月),因此这些应用程序现在也应该使用yourapp.herokuapp.com映射。


10
自定义域现在是核心功能,因此无需附加安装步骤。
ob1 2012年

8
该CNAME应设置为“[您的应用程序] .herokuapp.com”(为雪松堆栈,竹利用“[您的应用程序] .heroku.com”)
OB1

13
@JohnBeynon仍然值得编辑您的答案,因为人们从Google来到这里。咳嗽
乔什·史密斯

3
如果您需要将裸域(example.com)重定向到heroku应用,则可以使用wwwizer.com/naked-domain-redirect
Gabriel Cebrian

1
请注意,从2014年9月22日开始,Heroku仅提供支持[yourapp].herokuapp.com。对旧式路由堆栈的支持[yourapp].heroku.com将被删除。
加百利·奥索里奥2014年


4

是的,Heroku进行了许多更改。如果您在Web服务器上使用Heroku测功机,则必须找到从一个DNS名称别名到另一个DNS名称的别名的方法(因为每个Heroku DNS端点可能会解析为许多IP地址以动态调整以适应请求负载)。

一个CNAME记录是别名www.example.com- >www.example.com.herokudns.com.

您不能将其CNAME用于裸域(@),即example.com(除非找到能做的域名服务器CNAME Flattening-这就是我所做的)。

但实际上,最简单的解决方案是创建一个CNAME record执行以下操作的解决方案,该解决方案几乎可以解决您GoDaddy帐户中的所有问题www.example.com -> www.example.com.herokudns.com

然后创建从example.com到的永久301重定向www.example.com

这仅需要在您的heroku应用程序设置中配置的一个heroku自定义域名:www.example.com.herokudns.com。@乔纳森·罗伊(Jonathan Roy)谈到了这一点,但提供了一个错误的链接。


2

如果未将的裸域your-domain.com重定向到,则不能使用www.your-domain.com。Heroku使用www.yourdomain.com此处的作为子域。因此,当您按照默认说明使用时,your-domain.com则需要分配它们两者。

实际上,我们只能分配裸域,而不能分配www.your-domain.com。仅your-domain.com当域的dns提供程序(NameServers)支持@Record to的ALIAS或ANAME时,才example.herokuapp.com使用CNAME www.your-domain.com

它可以让您分别指向www.your-domain.com其他主机(独立)。


0

我将非www指向54.243.64.13www.domain.com指向alias.herokuapp.com,所有都很好用。

仅在指向www.domain.com并在上运行dig命令后才找到IP www.domain.com,它显示:

;; ANSWER SECTION:
www.domain.com. 14400  IN      CNAME   aliasat.herokuapp.com.
aliasat.herokuapp.com. 300 IN CNAME us-east-1-a.route.herokuapp.com.
us-east-1-a.route.herokuapp.com. 60 IN  A       54.235.186.37

;; AUTHORITY SECTION:
herokuapp.com.          900     IN      NS      ns-1378.awsdns-44.org.
herokuapp.com.          900     IN      NS      ns-1624.awsdns-11.co.uk.
herokuapp.com.          900     IN      NS      ns-505.awsdns-63.com.
herokuapp.com.          900     IN      NS      ns-662.awsdns-18.net.

可能不理想,但可行。


1
如果使用此解决方案,则您的网站可能会定期关闭。IP可能会更改(并且将会更改),这将终止您的A记录DNS设置。您必须每2-3个月或在Heroku发生任何故障后执行此操作。我们一直在处理这个问题,最终将其转移到cloudflare或easyDNS以防止这种情况。
David Nelson
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.