问题描述
我很好奇 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。