Из любопытства я хотел узнать, как Wordpress.com масштабирует свою архитектуру, а именно:
как они обрабатывают субдомены.
Я считаю, что у них миллионы поддоменов. CMIIW. Как они масштабируют свой DNS, чтобы справиться с этим?
Они также поддерживают пользовательские домены.
Как они справляются с переводом, а также как они масштабируют запросы?
обратите внимание, я выбираю Wordpress тег, потому что мне не разрешено все же создавать wordpress.com тег.
Вероятно, это не то место, чтобы задавать этот вопрос, но;
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 - это CNAME для lb.wordpress.com (я предполагаю, что lb - это «балансировщик нагрузки»). lb.wordpress.com содержит несколько записей A, указывающих на их серверы. На стороне сервера у них, скорее всего, установлена конфигурация, так что CNAME * .wordpress.com на lb.wordpress.com, а затем, когда им нужно добавить / удалить / изменить серверы, они могут изменить настройки для lb.wordpress.com.
2) Пользовательские домены.
На самом деле это скорее проблема со стороны приложения, каждый * HTTP-запрос отправляет HTTP-заголовок, содержащий хост. Доступ к нему можно получить из приложения, например, в PHP вы можете получить это значение с помощью $_SERVER['HTTP_HOST']
. Затем нужно просто найти, какому «пользователю» принадлежит HTTP-хост, и вернуть контент. Чтобы понять это немного больше, я предлагаю вам изучить путь Wordpress MU, Wordpress Networks (MU был прекращен / он был интегрирован в ядро стандарта Wordpress) и Плагин Wordpress MU Domain Mapping работай.
* Фактически, вы можете во многом зависеть от отправляемого заголовка Host :. Любой клиент, который не отправляет заголовки Host, скорее всего, столкнется со многими другими проблемами.
Предлагаю вам поискать http://highscalability.com/blog/ и следуйте за ним.
У них есть несколько статей о масштабируемости WordPress.
@SAM, вы никогда не узнаете, как масштабируется wordpress.com, выполняя копирование или перебор DNS.