我打算在负载平衡器(HAProxy或nginx本身)后面运行一些微型的ARM“物理云”服务器,但是我不能决定把Varnish放在什么地方。
我可以在每个实例上都有,在本地做这个工作,但是看到内容是一样的,看起来很浪费。
我也可以在与负载均衡器相同的实例上拥有它 – 但是这会在前面或后面创build问题? 对我来说,从逻辑上讲,它应该在前面 – 如果它可以从caching中获取页面,则不需要打扰请求的负载平衡器。 而且,我甚至可以删除负载平衡器,并使用Varnish在后端实例之间循环。
但是,我在网上发现了许多不同的解决scheme,没有任何(最近的)基准testing或者任何变种的优点/缺点,所以我不能决定我的“理想”场景是否存在任何问题(作为负载均衡器和caching引擎的Varnish) 。
那么 – 使用Varnish作为负载平衡器是否可行? 如果不是,我应该把它放在负载平衡器本身的前面还是后面?
传统上,caching会在负载均衡器前面运行,因为负载均衡器的存在可以缓解缓慢的应用程序服务器,并且caching旨在减轻运行应用程序服务器的负担。 缺点是一个Raspitypes的集群可能没有足够的资源来维护大型caching。
您希望将清漆放在负载平衡器后面的时间是,您需要将caching分散到多台机器时,以实现容错或缓解存储需求。 例如,根据请求URL设置哈希值的负载均衡器能够确保所有对“cat”的请求都进入机器A,而对“dog”的请求则进入机器B,以防万一您想要依赖大型caching但不能适应所有的微型ARM设备。