我正在使用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
my-app-pr-1738.myapp.herokuapp.com
(子域名foo
将由应用程序本身处理)这可能吗?
附注:我使用DNSimple进行DNS记录管理,尽管这个问题一般适用于DNS。
答案 0 :(得分:0)
如何设置DNS以便“解析”传入请求的子域并将其定向到正确的应用程序?
你不能,不能简单地使用DNS协议,除非所有主机名都由同一个后端服务器处理(你不能真正假设,因为Heroku可能将不同的子域路由设置为单独的IP)。
如果每个应用都附加了自定义主机名,并且它们都遵循唯一的架构,例如<pr-1738>.example.com
,然后您可以创建一个通配符
*.example.com
指向主Heroku主机名。同样,由于Heroku可以从不同的IP处理应用程序A.example.com和B.example.com,因此无法保证始终正常工作。但它在大多数情况下都有效。
否则,真正正确的方法是在创建应用程序时提供适当的DNS记录。