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, который делает следующее:
- Используя pyinotify, мы следили за изменениями в папке wp-content.
- Каждый раз, когда было обнаружено изменение, мы выполняли унисон для синхронизации двух серверов.
- Мы также выполняем серию унисон регулярно, скажем, каждые 15 минут или около того, просто чтобы быть в безопасности.
Кажется, до сих пор это работало для нас просто отлично. Обратите внимание, что это лучше всего работает на двух серверах. Если у вас более одного сервера, этот метод необходимо настроить.
Надеюсь, что это ответ на ваш вопрос.