Varnish - 位于负载均衡器 (HAProxy/nginx) 后面、前面或替代它

Varnish - 位于负载均衡器 (HAProxy/nginx) 后面、前面或替代它

我打算在负载均衡器(HAProxy 或 nginx 本身)后面运行一些小型 ARM“物理云”服务器,但我无法决定将 Varnish 放在整个混乱中的什么位置。

我可以在每个实例上使用它,在本地完成这项工作,但看到内容相同,这似乎有点浪费。

我也可以将其与负载均衡器放在同一个实例上 - 但这会产生一个问题 - 放在负载均衡器的前面还是后面?对我来说,从逻辑上讲,它应该放在前面 - 如果它可以从缓存中获取页面,就不需要用请求来打扰负载均衡器。而且,我甚至可以删除负载均衡器并使用 Varnish 在后端实例之间进行轮询。

但是我在网上找到了很多不同的解决方案,没有任何(最近的)基准或任何一种方案的优缺点,所以我无法确定我的“理想”场景(Varnish 作为负载平衡器和缓存引擎)是否存在问题。

那么,使用 Varnish 作为负载均衡器可行吗?如果不行,我应该把它放在负载均衡器前面还是后面?

答案1

缓存通常位于负载均衡器之前,因为负载均衡器的存在是为了缓解缓慢的应用服务器,而缓存则试图缓解应用服务器的运行。缺点是 Raspi 式集群可能没有足够的资源来维护大型缓存。

你想把清漆在后面当您需要将缓存分散到多台机器上时,就需要使用负载平衡器,以便实现容错或降低存储要求。例如,设置为基于请求 URL 进行哈希处理的负载平衡器能够确保所有对“猫”的请求都发送到机器 A,而对“狗”的请求发送到机器 B,以防您想依赖大型缓存,但无法将所有内容都放在一台微型 ARM 设备上。

相关内容