具有多个服务器的 WordPress MU;wordpress 不会显示媒体文件;同步内容

具有多个服务器的 WordPress MU;wordpress 不会显示媒体文件;同步内容

昨天我设置了一个 wordpress“clutser”。

  • 两个用于 Nginx 和 PHP 的前端/后端服务器
  • 一个数据库服务器
  • 所有安装了 memcached
  • 我有一个内部网络,因此没有身份验证问题

我现在的问题是,将 /wp-content/ 文件夹与所有插件、主题和用户上传。我测试了两种方法:sshfs 和 unison。两者都可以同步文件……但是 wordpress 从不显示图片?!而且普通文件(例如:pdf)只在我的一个后端服务器上显示,而在另一个服务器上则会出现 404。

也许有人遇到过类似的问题并可以帮助我。

有人知道还有其他方法可以保护我的三台服务器吗?

再见 :)

答案1

我最近也遇到了同样的问题,并在网上搜索可能的解决方案。似乎最常见的建议是:在主机之间使用 rsync/unison/scp 传输文件或使用某种形式的中央文件存储(如 NFS 或 iSCSI)。我不喜欢中央存储解决方案,因为它似乎过于繁琐,而且您仍然需要在该解决方案中构建一些冗余。

Rsync/Unison 似乎是更好的选择,但必须定期执行它们才能同步文件。我不喜欢从 cron 持续运行它的想法,因为 rsync 和 unison 每次运行时都会扫描所有文件以查找更改。如果您有很多文件,这可能会导致过多的开销。

我们想出了自己的解决方案,非常简单。我们编写了一个简单的 Python 守护程序,它执行以下操作:

  1. 使用 pyinotify,我们观察了 wp-content 文件夹的变化。
  2. 一旦检测到变化,我们就会执行一次 unison 运行来同步两个服务器。
  3. 为了安全起见,我们还会定期进行同步运行,比如每 15 分钟左右一次。

到目前为止,这对我们来说似乎效果很好。请注意,这在双服务器设置下效果最佳。如果您有多个服务器,则需要调整此方法。

希望这能回答你的问题。

相关内容