Установка Wordpress на двух серверах - балансировка нагрузки

14

Я должен установить WordPress (один блог, один домен, например, mycompany.com/blog) на двух серверах, совместно использующих одну базу данных на другом сервере, эти два сервера находятся за балансировщиком нагрузки, а база данных будет на другом сервере. Мы планируем этот путь из-за большого трафика.

Я сделал отдельные установки WordPress на одном сервере, на Windows 2003, 2008 с IIS6, 7 и т. Д.

Я просто исследую, как бы я это реализовал.

Каковы были бы шаги для достижения этой цели, и после поиска я увидел несколько сообщений, касающихся каталога wp-content / uploads, которые будут синхронизироваться через равные промежутки времени?

Ваша помощь высоко ценится Спасибо за чтение


Что мы сделали :

а) у нас есть два веб-сервера, подключенных к кластеру san; б) создан каталог блогов в сан; в) сопоставлен этот каталог блогов как виртуальный каталог на обоих веб-серверах; каталоги одинаковы для обоих серверов - например, www.abc.com) e) База данных для этого блога расположена на двух MySQL Boxs

поскольку WordPress сидит в сети, поэтому нет конфликтов с загрузками или чем-то подобным, URL-адрес блога - www.abc.com/blog, и вот как он настроен на обоих сайтах.

Надеюсь, что это помогает кому-то!

rihatum
источник
1
+1 за эффект «я никогда не думал об этом».
Ричард Слейтер
1
+1 за «Я надеюсь, что кто-то даст действительно хороший ответ с пошаговыми инструкциями о том, как лучше всего это реализовать и почему это лучше всего».
Джед Дэниелс
только что добавил, что мы в итоге делаем - надеюсь, это поможет
rihatum

Ответы:

4

Если эти каталоги должны быть идентичными, не могли бы вы разместить их на другом сервере и смонтировать их удаленно через NFS?

Мэтт Симмонс
источник
У нас есть SAN; поэтому мы установили WordPress на SAN и добавили этот каталог в IIS в качестве каталога WordPress / Blog. Спасибо всем за комментарии ;
Рихатум
2
SAN - это не то же самое, что NFS.
Крис
3
Делитесь сессиями с Memcache, делитесь файлами с NFS или GlusterFS. Делитесь трафиком с HAProxy или Varnish (кэши тоже!), А также делитесь базами данных с круговой репликацией.
Том О'Коннор
GlusterFS - это увлекательное предложение - спасибо вам за это. Я исследую это как решение для моего Wordpress масштабирования статических вещей.
Артем Руссаковский
3

Существует так много способов улучшить производительность WordPress, которые не требуют второго сервера и балансировки нагрузки. В двух словах: «кешировать все».

  • Используйте php opcode cacher (APC). Вы можете легко достигнуть 90% -й скорости обращения к кешу с Wordpress в менее чем 64 МБ памяти

  • Включить кеш запросов mysql. Вы можете легко достичь 65% или> коэффициентов попадания в кэш с очень небольшим значением mem (зависит от сайта, но не слишком высоко).

Самое главное:

Wordpress - это тяжелый «читаемый» сайт (против записи), большинство запросов ограничено несколькими сотнями страниц (постами в блоге). Вы можете увеличить количество запросов в секунду в 10 раз, предоставляя статические версии своих самых популярных сообщений. Лучший плагин для этого: wp-super-cache. Я не уверен, что этот конкретный плагин совместим с 2k3, но общая идея автоматического создания статических версий ваших страниц и их периодического обновления для добавления новых комментариев, изменений и т. Д. Будет для вас лучшим выбором.

Я действительно сомневаюсь, что ваш сайт будет использовать достаточно трафика, чтобы потребовать два сервера веб-приложений, если реализованы вышеперечисленные общие усовершенствования (описанные выше могут легко справиться с эффектом слешдот). Однако два веб-сервера добавили бы уровень отказоустойчивости. Поскольку производительность может быть достигнута с одним веб-сервером, отказоустойчивость может быть достигнута с помощью активной / пассивной настройки. Это было бы проще и не требовало обмена информацией о сеансе.

CarpeNoctem
источник
+1 В WordPress также есть плагины для кеширования, которые могут сделать действительно хорошую работу. Нет смысла запускать WordPress на двух серверах, подобных этому, с достаточным объемом кэширования.
WheresAlice
4
Балансировка нагрузки - это не только производительность, но и добавление избыточности.
Майк П
Когда вы упоминаете WP Super Cache, вы также должны упомянуть W3 Total Cache
Дэвид
2

Мы столкнулись с той же ситуацией и в итоге установили плагин s3, в котором размещен ваш каталог wp uploads, чтобы вам не приходилось иметь дело с синхронизацией.

Это тот, который мы использовали: http://tantannoodles.com/toolkit/wordpress-s3/

Пока все отлично работает!

shennyg
источник
1
Я бы не советовал использовать плагин, который не обновлялся с 2009 года - он не поддерживается, и вы можете пожалеть об этом в будущем (изменения S3, безопасность и т. Д.).
Артем Руссаковский
К вашему сведению, мы все еще работаем с этим плагином.
Шенныг
@shennyg - все еще сильна?
Бен
@Steve WordPress-S3 не поддерживается. Я бы пошел с общим кешем w3 , он может синхронизировать ваши медиа-библиотеки.
Шенныг
0

Вы должны разделить между серверами файлы uploads / dir и dir сессий, обычно в / tmp

Измените его в php.ini и поделитесь фс для сессий и загруженных файлов между серверами через samba, nfs или что вы предпочитаете.

sntg
источник
0

Прежде всего, ответив на очень связанный вопрос, вы, вероятно, найдете здесь полезное: репликация SAN + MySQL - это то, что я хочу для своего кластера Drupal с балансировкой нагрузки?

Веб-кластеризация может зайти очень далеко от кроличьей норы, поэтому важно помнить о своих бизнес-целях и не заблудиться в едином подходе инженера. Например, вы планируете иметь два веб-сервера и один сервер базы данных ... но что, если сервер базы данных является вашим узким местом? Тогда ваш второй веб-сервер теряется. На современном оборудовании с одним веб-сервером и одним сервером баз данных и хорошо настроенным WordPress вы можете обрабатывать пару сотен запросов в секунду. Вы ожидаете этого? Если нет, то, вероятно, нет смысла в балансировке нагрузки.

cagenut
источник
0

сеансы лучше делятся через memcache, чем в файловой системе.

Майк
источник
-1

На паре Linux я бы использовал DRBD. Эквивалентом Windows является служба распределенных файлов.

http://technet.microsoft.com/en-us/library/cc753479%28WS.10%29.aspx

Теренс Джонсон
источник
... за исключением того, что DRBD предоставляет блочное устройство, которое вряд ли эквивалентно файловой системе.
Андол
... и тогда я могу выбрать, какую файловую систему отформатировать, что дает гораздо больше возможностей для нерешительности, чем застревание в NTFS;)
Теренс Джонсон