【问题标题】:Route all subdomains to my Heroku Rails app将所有子域路由到我的 Heroku Rails 应用程序
【发布时间】:2017-03-07 15:15:35
【问题描述】:

我使用 DNSimple 注册了我的域。我的应用托管在 Heroku 上。

如何任意将所有子域路由到我的 Heroku 应用程序?

例子

  • bluejays.cappedin.com
  • redsox.cappedin.com
  • anything.cappedin.com

无论用户键入什么作为子域(总是只有 1 级深),我都希望它路由到我的 heroku 应用程序。理想情况下,我不想define Heroku 或 DNSimple 中的每个子域......它应该只是指导一切。

任何和所有子域都只是路由到我的应用程序,在那里我处理使用request.subdomain 方法的逻辑。

将这些“犯规”搞砸了我正在尝试做的事情(下)

谢谢!

【问题讨论】:

  • @JonathanAllard 该链接有一些信息,但没有解释如何 1. 将所有子域发送到我的 Heroku 应用程序 2. 如何设置 Heroku 以接受我的应用程序的所有子域
  • 好吧,你说得对,那边的答案可能会更清楚。我会添加一个答案。

标签: ruby-on-rails heroku dns


【解决方案1】:

在 DNS 设置中,等式通常有两个部分:(1) 发送方,即 DNS 服务器,将流量引导到服务器;(2) 接收方,即服务器将流量发送到,这通常需要知道要监听哪些域。

Wildcard domains 上的 Heroku 文档非常清楚:

向您的应用添加通配符域,就像添加任何其他域一样,但使用* 通配符子域表示法。

$ heroku domains:add *.example.com
Adding *.example.com to example... done

Heroku 路由器已准备好接收您的流量。你只需要在那里有你的 DNS 点。因此,在您的 DNS(在您的情况下可能托管在您的注册商处)中,添加您的 wildcard record

*.example.com.  CNAME   example-1234.herokuapp.com

(或任何 Heroku 告诉你的 CNAME)

【讨论】:

  • 我添加了一张图片。将添加 * 捕获所有“以前未定义”的 cname。示例我希望邮件 CNAME 保留,但如果需要,其他邮件可以消失。
  • 这将是另一个问题的主题,但从阅读Wildcard DNS record 上的链接 wiki 文章看来,通配符确实只能捕获未定义的内容。
  • 写得很好的答案。非常感谢。
  • 工作得很好。请参阅 example.cappedIn.com - 现在重定向所有子域。现在我只需要在我的 Rails 应用程序中处理它们。谢谢。
猜你喜欢
  • 2011-11-01
  • 2014-01-02
  • 2016-11-28
  • 2013-10-13
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多