这是一个最佳实践问题。我正在着手创建一个网站,该网站将拥有用户生成的子域来托管用户内容。想想 tumbler 或 stackexchange。子域(如*.mysite.com
where)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 或其他负载均衡器/代理根据端口决定如何处理流量。但域名对此没有影响。