将通配符子域映射到唯一端口的最佳方法是什么?

将通配符子域映射到唯一端口的最佳方法是什么?

这是一个最佳实践问题。我正在着手创建一个网站,该网站将拥有用户生成的子域来托管用户内容。想想 tumbler 或 stackexchange。子域(如*.mysite.comwhere)sub1.mysite.com将指向在端口上运行的服务。

目前我的想法是让我的 DNS 提供商将通配符记录指向*.mysite.com具有运行的静态 IP 地址nginx。然后我将为nginx每个子域创建配置文件并映射到正确的端口。

我担心这个解决方案会变得相当麻烦,并且需要维护大量子域的配置文件。我不确定nginx's reload这是否会成为重新加载服务器以添加新子域映射的瓶颈。

我采用的另一种方法是使用动态 DNS 提供商,该提供商具有用于创建子域的 API,并在创建新服务时动态创建子域记录。我找不到任何出色的服务,而且 DNS 传播也会成为问题。

答案1

您对通配符 DNS 的工作原理感到困惑。您不会将 DNS 映射到端口号,DNS 会映射到 IP 地址。因此,通配符 DNS 记录会获取所有未知名称并将它们发送到特定 IP。无论我输入“serviceA.mysite.com”还是“thisisamadeupdomainthatdoesntexist.mysite.com”,如果它们都不是当前 DNS 条目,那么无论我使用哪个端口,我都会被发送到同一个 IP。

在您的服务器上,您可以使用 nginx 或其他负载均衡器/代理根据端口决定如何处理流量。但域名对此没有影响。

相关内容