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

Mel*_*Mel 7 dns ruby-on-rails heroku

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

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

我再次问,希望能找到一些有关如何使其发挥作用的实质性帮助.

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

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

DNS_PROBE_FINISHED_NXDOMAIN
Run Code Online (Sandbox Code Playgroud)

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

host www.mycustomdomainname.com 
Run Code Online (Sandbox Code Playgroud)

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

host https://www.mycustomdomainname.com
Run Code Online (Sandbox Code Playgroud)

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

dig www.mycustomdomainname.com cname +short
Run Code Online (Sandbox Code Playgroud)

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 *重建网址:https ://www.mycustomdomainname.com/*无法解析主机:www.mycustomdomainname.com*关闭连接0卷曲:(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.
Run Code Online (Sandbox Code Playgroud)

但是,它还说:

PASSED Heroku SSL
Run Code Online (Sandbox Code Playgroud)

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.
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

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

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

reb*_*tte 5

清单

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

    Host: *
    Points To: yourapp.herokussl.com
    
    Run Code Online (Sandbox Code Playgroud)

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

  2. 在 Heroku 上,转到“资源”并确保您安装了SSL 插件

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

    Domain Name: *.yourdomain.com
    DNS Target: yourapp.herokussl.com
    
    Run Code Online (Sandbox Code Playgroud)

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

陷阱

  • 使用 heroku 工具带确保您的 SSL 证书仍然受信任

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

    为确保您处于正确的位置whois,请对您的域执行以下操作:

    whois yourdomain.com | grep 'Name Server'
    
    Run Code Online (Sandbox Code Playgroud)

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

    Name Server: ns1-123-reg.co.uk
    Name Server: ns2-123-reg.co.uk
    
    Run Code Online (Sandbox Code Playgroud)

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

希望这有帮助 <3


小智 1

根据您的解释,该域的 CNAME 记录设置正确。请确保从 Heroku 端正确添加域名。本指南可能会对您有所帮助https://devcenter.heroku.com/articles/custom-domains