如果我将来需要,我正在尝试了解可能性。我准备在带有HyperDB 的WordPress MultiSite上打开一个网络。我想让用户通过注册打开子域站点,我需要一个在需要时使用第二台服务器的解决方案。
有 1 个主站点和子域没有相互连接。如果 blog_id > 50000,我需要以某种方式将请求转发到其他服务器 有一些关于它的“旧”讨论:http ://codex.wordpress.org/How_to_Scale_WPMU
这个想法是在单个 HTTP 服务器上接收所有传入请求。该服务器使用 mod_proxy 和 mod_rewrite,将请求路由到 X 后端服务器,充当反向代理。
好吧,我几乎没有管理服务器,而且是这方面的新手。我怎样才能做到这一点?
小智 5
您链接到的“如何扩展 WPMU”页面提出了一个解决方案,这似乎是一个不错的解决方案,但我质疑它的扩展能力。他们所做的相当简单。它们使用主机名标头让反向代理决定将请求路由到哪个服务器。基本上,他们查看博客名称的第一个字母,然后将请求路由到 26 个服务器中的 1 个,每个字母对应一个。
这可能无法很好地扩展。首先,因为字母表中的某些字母会比其他字母更受欢迎。以字母 q 或 x 开头的博客会比以字母 e 或 m 开头的博客少得多。第二个问题是,如果一个或几个以相同字母开头的博客非常受欢迎,那么一台服务器的负载将比其他 25 台服务器高得多。其他服务器的利用率可能非常低,而该服务器无法处理流量。不能很好地利用可用资源。
如此规模的负载平衡并不是一件容易的事,并且需要在反向代理上使用更多的智能逻辑。对于您尝试构建的解决方案也是如此。如果您需要根据 blog_id 转发请求,则需要在反向代理上使用一些自定义逻辑,该逻辑可以查找主机名以找到 blog_id,然后决定将其转发到哪个服务器。我不知道使用 Apache 是否可以实现这种逻辑。我更像是一个 IIS 专家,要使用 IIS 构建这样的解决方案,有必要编写自定义重写提供程序。做起来并不难,但也没有解决缩放问题。
为了解决扩展问题,您需要额外的逻辑来动态地将服务器添加到当时接收大量流量的博客或博客组。这需要反向代理和可以动态添加/移动服务器到博客池的供应/部署系统之间的同步。博客平台 Squarespace 已将此作为其独特的卖点之一。
归档时间: |
|
查看次数: |
211 次 |
最近记录: |