与Heroku和BigRock的裸域

时间:2013-08-19 09:38:03

标签: ruby-on-rails heroku dns cname wildcard-subdomain

我的域名example.com来自域名注册商 BigRock ,它还为我提供了DNS管理面板。
我的应用程序位于example.herokuapp.com Heroku

Heroku的域名设置:

bash-3.2$ heroku domains
=== MyApp Domain Names
*.example.com
example.herokuapp.com
example.com
www.example.com

在我的DNS管理面板中,我有0条A记录,1条Hotmail邮件和1条CNAME记录{.1}}。

我知道Naked域的问题和Heroku的A记录。 我经历过这些: 1. StackOverflow ques - How to setup DNS for an apex domain (no www) pointing to a Heroku app?
2. Heroku DevCenter - Custom domains - set up root domain
3. Heroku DevCenter - Apex Domains

以上链接和许多其他链接指向2个解决方案:

  • 通过DNSimple / DNS轻松使用ALIAS或ANAME记录
  • 如果您的DNS提供商不支持这样的记录类型,并且您无法切换到那样做,则需要使用子域重定向向Heroku上的应用发送根域请求。

因为,我在BigRock DNS管理控制台上找不到这样的记录。只有这些记录 - “A,AAAA,MX,CNAME,TXT,SRV和SOA”。

因此,我已为我的域设置了“域名转发”。但是,它只允许我选择提供“指定URL,您希望转发对www.example.com和example.com 的请求”。

现在,如果我这样做

www.example.com

bash-3.2$ host example.com
example.com has address 173.194.16.11
example.com mail is handled by 15 888379351a9a.pamx1.hotmail.com.

这确实解决了裸域问题。但是其他子域名bash-3.2$ host www.example.com www.example.com is an alias for example.herokuapp.com. 仍然没有重定向到xyz.example.com,因为。{ 没有提及将所有子域名,即“*”重定向到BigRock DNS提供商的“域转发”部分中的任何其他名称。

所以,我的问题是如何解决重定向子域的问题?

  

与SSL相关的另一个查询 -

Heroku Devcenter - subdomain redirection中,它说明了这一点 “但是,请注意,使用此方法,对根域的安全请求(例如https://example.com)将导致向用户显示错误或警告。”

有没有办法解决上述问题,还是我必须切换到DNSimple或DNS Made Easy才能使用他们提供的ALIAS或ANAME记录服务?

更新
在进一步挖掘时,我发现了这个问题 - Rails Manually redirecting from Naked Domain,建议使用:

这是一种更好的方法吗?

5 个答案:

答案 0 :(得分:3)

在BigRock DNS面板中设置域名转发后,您会看到两条A记录,例如example.com => 173.193.106.11www.example.com => 173.193.106.11。如果您创建通配符dns A记录,它将以相同的方式重定向所有域。即*.example.com => 173.193.106.11

我不确定您的IP是否相同,因为Bigrock可能正在使用多台服务器来提供此服务。

答案 1 :(得分:1)

Linode也不提供裸域ANAME记录。我发现的解决方案是正常为Heroku应用添加www.site.com CNAME记录。然后将裸域/ catch-all A记录指向以下IP地址:

174.129.25.170

这是wwizer提供的免费裸域重定向服务。它将占用您的裸域,并将其重定向到www。当量:

site.com => www.site.com

希望这有帮助。

答案 2 :(得分:0)

尝试在域转发面板的“目标”中添加域名www。 稍后,删除www的A记录。因此,只有2条A记录

即裸域和通配符(*)

然后为www添加指向HerokuApp值的CNAME记录。 如果您遇到任何问题,请告诉我们。

答案 3 :(得分:0)

您必须从裸域到www子域执行您的网站Domain Forwarding。此功能位于Manage DNS功能旁边。打开对话框后,只需输入您的www子域(www.example.com)即可。在6到8个小时之后(有时需要1天),它会自动为您的裸域(A record)添加example.com点到IP 173.193.106.14

答案 4 :(得分:-1)

例如kanhaiyakumawat.com和kanhaiyakumawat.herokuapp.com

以下是步骤

  • 在您的heroku帐户中添加记录
  • www.kanhaiyakumawat.com to kanhaiyakumawat.herokuapp.com
  • kanhaiyakumawat.com to kanhaiyakumawat.herokuapp.com
  • *。kanhaiyakumawat.com to kanhaiyakumawat.herokuapp.com

所以现在这个heroku侧设置完成了。让我们转向bigrock' DNS Management'部分。点击“管理DNS'。

  • 添加CNAME记录
  • www.kanhaiyakumawat.com to kanhaiyakumawat.herokuapp.com
  • *。kanhaiyakumawat.com to kanhaiyakumawat.herokuapp.com

最重要的是:设置裸域或根域设置

  • 现在这是最棘手的部分。只需留下'主机名'文本框 清空并选择值中的第二个单选按钮。
  • 把你的heroku dns值放在这里,例如kanhaiyakumawat.herokuapp.com

这里有相同的步骤: http://kanhaiyakumawat.com/blog/heroku-and-bigrock-dns-setup/