Назад | Перейти на главную страницу

Как wordpress.com обеспечивает масштабируемость

Из любопытства я хотел узнать, как Wordpress.com масштабирует свою архитектуру, а именно:

  1. как они обрабатывают субдомены.

    Я считаю, что у них миллионы поддоменов. CMIIW. Как они масштабируют свой DNS, чтобы справиться с этим?

  2. Они также поддерживают пользовательские домены.

    Как они справляются с переводом, а также как они масштабируют запросы?

обратите внимание, я выбираю 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.