问题描述
我很好奇 web-applications 如何能够为新用户立即创建 sub-domains,例如 newuser.wordpress.com 或 example.blogspot.com 。如果我需要为网站创建一个新的子域,通常需要我登录到 DNS 控制面板并手动创建一个子域。
我已经阅读了有关通配符 DNS 和子域名的示例,但似乎没有回答关于登录用户如何创建自己的子域的问题。我想象使用.htaccess 文件可以重写 URL 来加载与特定用户关联的子文件夹。
我将考虑的解决方案是使用像 Amazon Route 53 这样的服务,并使用 API创建新的子域。我不知道这是否被认为是一个很好的解决方案。
另外,Tumblr 允许您将您的域名指向其 IP 地址或 「domains.tumblr.com」 。这是否意味着 Tumblr 有自己的域名服务器来处理这些请求?
最佳解决方案
你是对的,诀窍是通配符 DNS 条目 (用星号表示) 。基本上它是一个 DNS 条目,将匹配所有没有特定 DNS 条目的子域。那么”routing” 发生在应用程序/网站端。没有为子域创建实际的 DNS 条目,因为 DNS 请求时发现”match” 的原因是 DNS 服务器返回域的通配符 DNS 条目的 IP 地址。
要看现实世界中的一个例子,您可以看一下 Wordpress Multisite 如何使用通配符 DNS 条目 (注意:许多共享托管提供商将不允许您创建通配符 DNS 条目) 。因为”routing” 正在应用程序发生,而不是 DNS 级别,它还允许您将自定义域映射到 sub-domains(如果您愿意的话)(就像他们在 wordpress.com 上提供的) 。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。