从Heroku Review Apps的传入DNS请求中解析子域

时间:2017-07-20 17:22:55

标签: heroku dns dnsimple

背景

我正在使用Heroku's Review Apps功能。它为每个打开的github pull请求部署一个新的app实例,并为其分配一个格式的唯一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。

1 个答案:

答案 0 :(得分:0)

  

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

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

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

*.example.com

指向主Heroku主机名。同样,由于Heroku可以从不同的IP处理应用程序A.example.com和B.example.com,因此无法保证始终正常工作。但它在大多数情况下都有效。

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