WordPress MU с несколькими серверами; WordPress не будет показывать медиа-файлы; Синхронизация вещей

Вчера я включил WordPress "clutser".

  • Два Front/Backend сервера для Nginx и PHP
  • Один сервер базы данных
  • на всех установлен memcached
  • У меня есть внутренняя сеть, поэтому нет проблем с аутентификацией

Теперь моя проблема - синхронизировать папку / wp-content / со всеми плагинами, темами и пользовательскими загрузками. Я проверил два способа: sshfs и unison. Оба работали для синхронизации файлов... но WordPress никогда не показывает картинку?! А нормальные файлы (пример: pdf) показываются только одним из моих backend-серверов, на другом идет 404.

Может быть, у кого-то была похожая проблема, и она может мне помочь.

Есть ли еще кто-то, кто знает, как защитить мои три сервера?

До свидания:)

1 ответ

У меня недавно была та же проблема, и я искал в Интернете возможные решения. Кажется, что наиболее распространенные предложения: rsync/unison/scp файлы между хостами или использование некоторой формы центрального хранилища файлов (например, NFS или iSCSI). Я не являюсь поклонником решения централизованного хранения данных, так как оно кажется сложным, и вам все еще нужно встроить некоторую избыточность в это решение.

Rsync / Unison кажется лучшим вариантом, но они должны выполняться регулярно для синхронизации файлов. Мне не нравится идея запускать его из cron на постоянной основе, так как rsync и unison сканируют все файлы на предмет изменений при каждом запуске. Если у вас много файлов, это может привести к избыточным накладным расходам.

Мы придумали собственное решение, которое довольно просто. Мы написали простой демон Python, который делает следующее:

  1. Используя pyinotify, мы следили за изменениями в папке wp-content.
  2. Каждый раз, когда было обнаружено изменение, мы выполняли унисон для синхронизации двух серверов.
  3. Мы также выполняем серию унисон регулярно, скажем, каждые 15 минут или около того, просто чтобы быть в безопасности.

Кажется, до сих пор это работало для нас просто отлично. Обратите внимание, что это лучше всего работает на двух серверах. Если у вас более одного сервера, этот метод необходимо настроить.

Надеюсь, что это ответ на ваш вопрос.

Другие вопросы по тегам