出于好奇,我想知道 Wordpress.com 如何扩展其架构,具体来说:
他们如何处理子域名。
我相信他们有数百万个子域名。CMIIW。他们如何扩展 DNS 来处理它?
他们还支持自定义域。
他们如何处理翻译以及如何扩展请求?
注意,我选择WordPress的标签,因为我不被允许然而创造wordpress.com标签。
答案1
这可能不是提出这个问题的正确地方,但是;
1)子域名
我猜他们只是有一个通配符子域名。如果你运行该dig
工具,你会得到这样的响应;
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> test.wordpress.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62954
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;test.wordpress.com. IN A
;; ANSWER SECTION:
test.wordpress.com. 14400 IN CNAME lb.wordpress.com.
lb.wordpress.com. 300 IN A 76.74.254.120
lb.wordpress.com. 300 IN A 76.74.254.123
lb.wordpress.com. 300 IN A 72.233.2.58
lb.wordpress.com. 300 IN A 72.233.69.6
lb.wordpress.com. 300 IN A 74.200.243.251
lb.wordpress.com. 300 IN A 74.200.244.59
;; Query time: 237 msec
;; SERVER: 192.168.16.103#53(192.168.16.103)
;; WHEN: Mon Nov 21 10:27:33 2011
;; MSG SIZE rcvd: 149
这有点难理解,但这里有一个基本的分解:
test.wordpress.com. 14400 IN CNAME lb.wordpress.com.
test.wordpress.com 或 wordpress.com 的任何子域都是 lb.wordpress.com 的 CNAME(我假设“lb”是“负载平衡器”)。lb.wordpress.com 包含一些指向其服务器的 A 记录。在服务器端,他们很可能已将配置设置为 *.wordpress.com CNAME 指向 lb.wordpress.com,然后当他们需要添加/删除/修改服务器时,他们可以更改 lb.wordpress.com 的设置。
2)自定义域。
这实际上更像是应用程序端的问题,每个* HTTP 请求都会发送一个包含主机的 HTTP 标头。这可以从应用程序访问,例如在 PHP 中,您可以使用 获取此值$_SERVER['HTTP_HOST']
。然后只需查找 HTTP 主机属于哪个“用户”并返回内容即可。为了更好地理解这一点,我建议您研究一下WordPress 社区,Wordpress 网络(MU 已“停产”/它已集成到 Wordpress 标准的核心中)和“Wordpress MU 域名映射”插件工作。
*事实上,您几乎可以依赖发送的 Host: 标头。任何不发送 Host 标头的客户端都可能遇到许多其他问题。
答案2
我建议你搜索http://highscalability.com/blog/并遵循它。
他们很少有关于 WordPress 可扩展性的文章。
@SAM 你永远无法知道 wordpress.com 是如何通过挖掘或 dns 暴力破解来扩展的。