出於好奇,我想知道 Wordpress.com 如何擴展其架構,具體來說:
他們如何處理子網域。
我相信他們有數百萬個子域名.CMIIW。他們如何擴展 DNS 來處理這個問題?
他們還支援自訂域。
他們如何處理翻譯以及如何擴展請求?
注意,我選擇文字新聞標籤,因為我不允許然而創造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 MU,WordPress 網路(MU 被‘停產’/它被整合到 Wordpress 標準的核心中)並且“Wordpress MU 域映射”插件工作。
*事實上,大多數情況下,您幾乎可以依賴發送的 Host: 標頭。任何不發送主機標頭的用戶端都可能會遇到許多其他問題。
答案2
我建議你搜尋一下http://highscalability.com/blog/並遵循它。
他們關於 WordPress 可擴展性的文章很少。
@SAM,你永遠無法知道 wordpress.com 是如何透過挖掘或 dns 暴力破解來擴展的。