Varnish 作为简单的转发 Web 服务器

Varnish 作为简单的转发 Web 服务器

我有一个低负载网站,平均每天有 1000 名访客。粗略估计,大约 6 个月内每天的用户数量将达到 10,000(甚至 20K)。但我仍然认为这是一个低流量的 CMS 网站。

所有内容都托管在一台具有 8 GB RAM 和 4 核 CPU(我可能会将其增加到 16G/8 核)的单个(CentOS VM)服务器上。

目前我们的设置如下:

Nginx -> Varnish -> HAProxy -> CMS_HTTP_Daemons X 2 -> 1 DB Daemon -> SDD Disk

由于 Varnish 也可以充当简单的循环负载均衡器,我计划从中间移除 HAProxy;又因为在我给出的场景中,nginx 除了 proxy_pass 之外什么都不做,所以我还考虑从链中删除这部分软件,以使设置如下:

Varnish (WebServer+LB+HTTPCache) -> CMS_HTTP_Daemons X 2 -> 1 DB Daemon -> SDD Disk

这是推荐的吗或者这似乎是个好主意吗?

顺便说一下,我的 CMS 是 Zeo/Plone,数据库是 ZopeDB。

答案1

一种替代方法是在 nginx 中设置负载平衡/缓存,并且只运行 nginx 和 CMS HTTP 守护进程。

但是,我不知道 nginx / Varnish 缓存性能的差异。

答案2

我们同时使用 varnish -> haproxy -> plone 和 nginx -> varnish -> haproxy -> plone。

我认为你可以用 varnish 来做所有事情,但我不确定它能给你带来多少好处。你必须花时间重新配置和测试。这些过程不会占用太多的 CPU 或 RAM。对于重写,我们在 CMS 中进行,因此不需要 nginx。

对于您这种规模的服务器,我将运行 4 个 zope 服务器,每个服务器可能使用 2 个线程。如果您真的担心流量高峰,您可以设置缓存,以便页面和文件夹在 varnish 中缓存 1-5 分钟。然后您的设置可以处理大量负载(假设您没有嵌入常用的表单和应用程序)。

答案3

你看过https://docs.plone.org/manage/deploying/index.html

通常使用 nginx 来重写 URL。Varnish 适合缓存。对于低负载站点,HAProxy 可能确实没有必要。

考虑在 Plone 论坛上发布与 Plone 相关的问题。我已在那里发布了你的问题的链接,网址为https://community.plone.org/t/stack-overflow-varnish-as-a-simple-forwarding-web-server/4489

相关内容