Rails – 配置DNS以使用Heroku(123-reg)进行托管

我想弄清楚如何在heroku上发布我的应用程序。 我的DNS是123-reg。 123-reg不提供对heroku部署的任何支持,反之亦然。

我之前已经问过这个问题(在评论中投票和嘲笑) Rails,Heroku – 为heroku配置123-reg域名

我再次要求希望找到一些有关如何使其发挥作用的实质性帮助。

目前,当我尝试使用我的自定义域名呈现页面时,我收到一条错误消息:

无法访问此站点www.mydomainname.com的服务器DNS地址无法找到。 尝试运行网络诊断。

DNS_PROBE_FINISHED_NXDOMAIN 

当我在终端中尝试以下内容时,我得到以下响应:

 host www.mycustomdomainname.com 

未找到主机www.mycustomdomainname.com:3(NXDOMAIN)

 host https://www.mycustomdomainname.com 

主机https://www.mycustomdomainname.com未找到:2(SERVFAIL)

 dig www.mycustomdomainname.com cname +short 

myherokualias.herokudns.com

heroku域返回带有和不带www前缀的heroku别名。

在我的DNS中,我有一个CNAME记录:

DNS ENTRY TYPE PRIORITY TTL DESTINATION / TARGET www CNAME mycustomdomainname.herokudns.com。

除此之外,我的电子邮件帐户还有MX和TXT记录。

任何人都可以看到我需要做什么才能使用我的自定义域名来呈现页面?

当我尝试:

curl -vI https://www.mycustomdomainname.com *重建url: https ://www.mycustomdomainname.com/ *无法解析主机:www.mycustomdomainname.com *关闭连接0curl:(6)无法解析主持人:www.mycustomdomainname.com

我迷失了尝试让这个工作的事情

HEROKU SETTINGS

我可以从检查我的heroku生产检查中看出,我有以下问题:

 FAILED DNS configuration Your DNS is not configured correctly. Your domain "mycustomdomain.com"'s ALIAS or ANAME record should point to ancient-water-74339.herokuapp.com. 

但是,它还说:

 PASSED Heroku SSL 

Heroku SSL说明说:

 Change your DNS for all domains on your app Verify your DNS settings by running dig www.yourdomainname.com cname +short. If it returns www.yourdomainname.com.herokudns.com then you have set it up correctly. If you are using an ALIAS or ANAME record, you can verify that based on the DNS provider. For instance, DNSimple will return a TXT record showing how your domain's ALIAS is set-up. You should note that it may take up to 24 hours before your DNS is fully propagated globally. 

对我来说,这意味着我应该用’herokudns’来代替’herokuapp’的引用。 另外,我正在阅读这些说明,要求我用’mycustomdomainname’替换’ancient-water-74339’。

我已经这样做了(因为我理解了说明),所以我的DNS上的CNAME现在指向’mycustomdomainname’.herokudns.com。

heroku生产检查说这是不正确的。 我应该有2个CNAME记录(一个使用heroku alias.herokuapp)而另一个使用’mycustomdomainname’.heroku dns

我试图将LetsEncrypt_plugin gem用于rails。 我无法validation该配置中是否存在错误,因为该gem不支持heroku。

任何人都可以看到我应该做什么来摆脱这种配置地狱?

DNS with SSL的heroku生产检查说明提供了配置SSL端点的说明。 SSL端点说明表明它们仅适用于旧版客户端(我不知道遗留客户端是什么),但该页面建议使用Heroku SSL。 这些说明说在应用程序名称的末尾使用“herokudns.com”。

我似乎无法将这些指令的任何组合工作。

清单

  1. 在您的DNS提供商上,确保正确设置了您的CNAME记录:

     Host: * Points To: yourapp.herokussl.com 

    如何在123-reg中添加CNAME记录

  2. 在Heroku上转到“资源”并确保安装了SSL加载项 。

  3. 在Heroku上转到“设置/域和证书”,并确保正确设置了自定义域:

     Domain Name: *.yourdomain.com DNS Target: yourapp.herokussl.com 

    请注意herokuapp.com和herokussl.com上的url可能有所不同。 如果您使用的是SSL证书,则必须使用后者。

陷阱

  • 使用heroku toolbelt确保您的SSL证书仍然可信

     heroku certs:info --app yourapp 
  • 您的注册商和DNS提供商可能会有所不同,这可能会导致您在错误的位置编辑CNAME记录。

    要确保您位于正确的位置,请在您的域中执行whois

     whois yourdomain.com | grep 'Name Server' 

    如果您的域名实际指向123-reg,则输出应为:

     Name Server: ns1-123-reg.co.uk Name Server: ns2-123-reg.co.uk 

    如果输出是其他内容,那么您可能应该在其他位置设置CNAME记录。

希望这有助于<3

将您的域指向Heroku仪表板上的Heroku应用程序后,转到设置选项卡并向下滚动到自定义域。 单击ADD DOMAIN并添加您的自定义域。

根据您的解释,CNAME记录是为域正确设置的。 请确保正确地从Heroku端添加域。 本指南可以帮助您https://devcenter.heroku.com/articles/custom-domains