像 workpress.com 这样的网站如何为所有用户分配他们自己的子域名?

像 workpress.com 这样的网站如何为所有用户分配他们自己的子域名?

workdpress.com 如何实现这一点,让每个人都获得一个子域名,比如在新用户注册后,当子域名尚未选择时,都可以选择 chooseName.wordpress.com?

答案1

我相信他们有一个通配符 CNAME 记录:

*.wordpress.com. CNAME lb.wordpress.com.

因此,任何对不存在的名称的查询都会通过此 CNAME 记录明确得到答复。

这似乎是合理的,因为您可以生成以 wordpress.com 结尾的随机有效 DNS 名称,该名称不太可能被任何人使用,但 DNS 会用此 CNAME 进行响应。因此(几乎)所有主机名(如 *.wordpress.com)都设置为指向 lb.wordpress.com先验,即使没有被认领,它们也在 DNS 级别工作。

他们如何处理它是另一个问题。基本上,背后的 Web 服务器lb.wordpress.com只是将Host标头用作附加输入参数。在有人认领某个名称后,它会被添加到某个数据库表中,并使用此参数进行查询。

答案2

评论太长了,但确实已经回答(请投票)

1.A通配符 DNS *.wordpress.com.记录,这样您就不需要为每个新订阅者实际创建新的 DNS 记录和新的子域。

2.类似的预装通配符 SSL 证书有效,*.wordpress.com.以便所有潜在子域名自动具有 TLS 支持,并且无需为每个新订阅者生成和安装新的 SSL 证书。

3.专为以下目的而设计的网站/Web 应用程序多租户. 对于每个新订阅者,只需创建一个新的配置文件,并且他们“自己的”定制 WordPress 网站将立即生效,而无需安装、部署、配置和定制(独立)Web 应用程序的副本(或实例)。

这利用了这样一个事实:对于 HTTP/HTTPS,Web 浏览器必须Host:随每个请求发送一个标头,其中包含访问者想要访问的网站的 DNS 主机名。这允许服务器后端选择是否存在使用该子域的订阅者,然后显示该特定 WordPress 网站的页面。

当访问尚未被订阅者认领的子域名时,服务器后端通常会将您带到注册页面。

(有关背景,请参阅基于名称的虚拟主机对于 TLS,服务器名称指示维基百科文章。)

相关内容