0

背景

我正在使用Heroku 的评论应用功能。它为每个打开的 github 拉取请求部署一个新的应用程序实例,并为其分配一个唯一的 URL 格式

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

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

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

问题

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

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

例子:

  • 我参观foo.pr-1738.example.com
  • 我希望 DNS 解析出请求的子域并指向my-app-pr-1738.myapp.herokuapp.com(子域foo将由应用程序本身处理)

这可能吗?

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

4

1 回答 1

0

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

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

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

*.example.com

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

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

于 2017-08-17T11:59:58.723 回答