【问题标题】:Parsing the subdomain from incoming DNS requests for Heroku Review Apps从 Heroku Review Apps 的传入 DNS 请求中解析子域
【发布时间】:2017-12-26 13:00:57
【问题描述】:

背景

我正在使用Heroku's Review Apps 功能。它为每个打开的 github pull request 部署一个新的应用程序实例,并为其分配一个唯一的 URL 格式

my-app-pr-1234.myapp.herokuapp.com

我的应用大量使用 Heroku 不支持的子域(请参阅答案 here)。

他们要求我购买并设置 DNS 记录来处理子域,所以我购买了example.com

问题

每个拉取请求都会生成它自己的唯一 URL。而且我不想为每个设置一个新的 DNS 记录,我宁愿设置一个通用 DNS 记录。

如何设置 DNS 以便它“解析”传入请求的子域并将其定向到正确的应用程序?

例子:

  • 我访问foo.pr-1738.example.com
  • 我希望 DNS 解析出请求的子域并指向 my-app-pr-1738.myapp.herokuapp.com(子域 foo 将由应用自己处理)

这可能吗?

旁注:我使用 DNSimple 进行 DNS 记录管理,尽管这个问题一般适用于 DNS。

【问题讨论】:

    标签: heroku dns dnsimple


    【解决方案1】:

    如何设置 DNS 以便它“解析”传入请求的子域并将其定向到正确的应用程序?

    你不能,不使用简单的 DNS 协议,除非所有主机名都由同一个后端服务器处理(你不能真正假设,因为 Heroku 可能会路由设置为不同 IP 的不同子域)。

    如果每个应用都附加了一个自定义主机名,并且它们都遵循一个独特的架构,例如<pr-1738>.example.com,那么就可以创建通配符了

    *.example.com
    

    指向主要的 Heroku 主机名。同样,这不能保证始终有效,因为 Heroku 可能会处理来自不同 IP 的应用程序 A.example.com 和 B.example.com。但它可能在大多数情况下都有效。

    否则,真正正确的方法是在创建应用时提供适当的 DNS 记录。

    【讨论】:

      猜你喜欢
      • 2012-09-30
      • 2012-06-15
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      相关资源
      最近更新 更多