问题描述

快速背景:

我们有一个 WordPress 实例,启用了 Multisite,托管了三个单独的博客。 (blog.example.com/blog1,blog.example.com/blog2,blog.example.com/blog3) 。

该多站点将通过四个服务器的 Web 层进行负载平衡,所有这些服务器都访问同一个数据库。我明白,blogs.dir 需要在 Web 层上同步,因此无论客户端访问哪个服务器,都可以使用媒体。

题:

我可以使用第五个 Web 服务器 (即 post.example.com),其唯一目的是使编辑者能够登录和发布新内容吗?这样,负载平衡的服务器只是 post.example.com 上传的内容的接收者。

我知道同步部分是可能的,但我不知道如何设置 WordPress 可以从两个不同的 sub-domains 访问。那可能吗?

编辑:我应该添加一个额外的目标,通过这样设置,我们希望通过阻止访问/wp-admin/在 Web 层上获得一些安全性,所以你只能从一个 Web 服务器 (post) 登录,但当然这一切都取决于上述问题。 🙂

模拟下面:

最佳解决方案

是的,这是可能的,一些新闻和媒体机构在 WordPress 中使用类似的方法。

你的编辑过程是什么?最重要的一步是理解您的编辑过程,以及在使用内容之前需要多少控制。 – 例如,考虑这 3 点:1. 您是否需要图像的第三方批准? 2. 您或您的客户在发布内容之前是否必须使用 sign-off 复制/图像/视频/布局? 3. 编辑们可以在不同的星期或问题上工作,并计划内容提前几周前上线吗?

如果您对其中任何一个回答 “是”,则您的 Pre-Live /分段服务器和 Live 服务器之间共享的单个数据库不是’possible’ 。你为什么问?因为一个新的帖子必须在 non-users 或您不想登录的第三方看到之前发布。 (BTW … 任何可能的时间,金钱和技能可以自定义用户角色和访问级别) 。

所以回到 WordPress 可扩展解决方案

DOMAIN A(您的客户和访客访问者) 将需要指向 HTTP 负载平衡器。

负载均衡器将客户流量引导到多个 Web 服务器之一。这些从属服务器使用 MASTER 服务器保存在 LSYNC 中。

理想情况下,应该有 2 个独立的 DB 服务器 (用于负载平衡读/写请求和比例) 。您可以期待来自访问者的大量阅读流量,但您希望确保来自新帖子等的 WRITE 流量不会中断您的 READ 请求。

DOMAIN A 也可以指向一个配置为 1 的 HTTPS 负载平衡器。只允许来自您的 Office IP 地址的流量和 2. FORCE SSL 连接用于管理/登录。

这是对 wp-config.php 文件的简单更改。

这里是我们构建的 (有一些来自 Rackspace 的支持)

HyperDB 最后我们得到了 HyperDB 设置来管理多个 DB 服务器和请求。这也很容易,因为它主要是具有长配置脚本的插件。

W3TC W3 总缓存我们还有 HyperDB 和 W3TC 设置。这也占用了大量的 DB 服务器

我们使用 W3TC 的主要原因是将所有静态内容加载到 Rackspace 。 W3TC 的内容传送网络设置也很简单:)

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。