【问题标题】:Naked Domain with Heroku and BigRockHeroku 和 BigRock 的裸域
【发布时间】:2013-08-21 01:34:00
【问题描述】:

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

Heroku 的域设置:

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

在我的 DNS 管理面板中,我有 0 条 A 记录、1 条 Hotmail 的 MX 记录和 1 条 www.example.com 的 CNAME 记录。

我知道裸域和 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 Made Easy 使用 ALIAS 或 ANAME 记录
  • 如果您的 DNS 提供商不支持这种记录类型,并且您无法切换到支持的记录类型,您将需要使用子域重定向将根域请求发送到 Heroku 上的应用。

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

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

现在,如果我这样做了

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这样的其他子域仍然没有重定向到www.example.com,因为 没有提及将所有子域(即“*”)重定向到 BigRock DNS 提供商的“域转发”部分中的任何其他名称。

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

另一个与 SSL 相关的查询 -

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

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

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

这是更好的方法吗?

【问题讨论】:

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


    【解决方案1】:

    在 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 可能使用多个服务器来提供此服务。

    【讨论】:

    • 感谢 Waqar 的回复。是的,Bigrock 确实创建了 2 A 记录,正如您所提到的。但是,在这里提到的 Heroku 托管时,A 记录很糟糕 - devcenter.heroku.com/articles/apex-domains#limitations
    • 如果我在这里遗漏了一些明显的东西,请纠正我。再次感谢。 :)
    • Jatin,这个 IP 地址来自 Bigrock,而不是 Heroku,我敢肯定,Bigrock 不会在没有通知的情况下更改其重定向服务服务器的 IP。我正在使用此重定向服务,我相信它也会满足您的目的
    • 谢谢。我会按照你的建议继续前进。我将保持悬赏开放,以便在可能的情况下仍能吸引更多人的关注。
    【解决方案2】:

    Linode 也不提供裸域 ANAME 记录。我找到的一个解决方案是像往常一样为 Heroku 应用添加 www.site.com CNAME 记录。然后将裸域/catch-all A记录指向如下IP地址:

    174.129.25.170
    

    这是wwizer 提供的免费裸域重定向服务。它将获取您的裸域,并将其简单地重定向到 www。等效:

    site.com => www.site.com
    

    希望这会有所帮助。

    【讨论】:

    • 谢谢安迪,但现在我要继续使用@Waqar 的解决方案,因为对于通配符域我必须这样做。
    【解决方案3】:

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

    即裸域和通配符 (*)

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

    【讨论】:

      【解决方案4】:

      您必须将您的网站的Domain Forwarding 从裸域转到 www 子域。此功能在Manage DNS 功能旁边可用。对话框打开后,只需输入您的 www 子域 (www.example.com)。 6 到 8 小时后(有时需要 1 天),它会自动为您的裸域(example.com)添加一个 A record 指向 ip 173.193.106.14

      【讨论】:

        【解决方案5】:

        例如kanhaiyakumawat.com 和 kanhaiyakumawat.herokuapp.com

        步骤如下

        • 在您的 Heroku 帐户中为
        • 添加记录
        • www.kanhaiyakumawat.com 到 kanhaiyakumawat.herokuapp.com
        • kanhaiyakumawat.com 到 kanhaiyakumawat.herokuapp.com
        • *.kanhaiyakumawat.com 到 kanhaiyakumawat.herokuapp.com

        所以现在这个 heroku 端设置完成了。让我们转到 bigrock 的“DNS 管理”部分。点击“管理 DNS”。

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

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

        • 现在这是最棘手的部分。只需留下“主机名”文本框 为空并选择值中的第二个单选按钮。
        • 在此处输入您的 heroku dns 值,例如kanhaiyakumawat.herokuapp.com

        此处提供了相同的步骤: http://kanhaiyakumawat.com/blog/heroku-and-bigrock-dns-setup/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-11-08
          • 1970-01-01
          • 1970-01-01
          • 2017-07-17
          • 2012-08-27
          • 2023-03-15
          • 2013-11-01
          相关资源
          最近更新 更多