2

我是第一次安装 ZEO。在我的配置中,实例在端口 8060 上服务 HTTP 请求。ZEO 服务器在端口 8061 上运行,另一个实例(客户端)在 8062 上运行。我可以在浏览器中通过 HTTP 访问这两个客户端。

我的网站在我添加 ZEO 之前指向 8060,在我添加 ZEO 服务器后继续指向 8060。如果我重新启动 8062 客户端,那么我的网站似乎仍在提供页面,但如果我在 8060 上重新启动实例,那么网站将停止提供页面。在我看来,只有 8060 实例是独立工作的,而不是使用 ZEO,因为我希望在重新启动任何实例时得到响应。请注意,在 ZEO 日志中,我可以看到握手条目。

我是否必须将网站指向 ZEO 服务器端口(不提供 HTTP 请求),还是我在实现中遗漏了什么?

4

2 回答 2

4

添加 ZEO 服务器不会神奇地使您的网站在客户端之间取得平衡。您的 ZEO 设置和您的实例一样运行良好,但您需要配置另一个组件:负载均衡器。

无论您在 Plone 站点前面有什么,都需要被告知使用其他客户端,这不会自动发生,也不是 ZEO 服务器的责任。

您用作负载均衡器的方式取决于您。您有多种选择:

  • 如果您当前使用 Apache 重写您的 Plone 站点的 URL,您可以配置mod_rewrite为负载平衡以进行随机负载平衡。或者,您可以使用mod_proxy_balancer实现更复杂的平衡设置并添加运行状况检查(如果后端正在重新启动,则停止使用)。
  • Varnish 也可以做缓存 负载平衡
  • 您可以安装专用的负载均衡器。HAProxy将是一个很好的选择,并且可以进行微调以匹配几乎任何场景。我们在大规模部署中使用它,在 30 个 Plone 后端平衡负载。

您需要选择一个并进行配置。如果您对具体细节有疑问,您可以查看https://serverfault.com是否可以提供帮助。

于 2013-02-25T10:30:44.603 回答
1

您将需要在您的 zeo 实例前安装一个负载均衡器。试试 haproxy。

http://developer.plone.org/reference_manuals/active/deployment/stack.html?highlight=haproxy#background-the-stack

https://pypi.python.org/pypi/plone.recipe.haproxy/1.1.2

于 2013-02-25T03:32:29.963 回答