需要HAproxy + Varnish + nginx设置build议

目前,我有两个运行HAProxy的负载平衡器,它将请求转发到后端,每个后端都在nginx前面运行Varnishcaching。 我认为这将在后端服务器上分配大部分带宽,但是我的负载平衡器似乎每个月使用数百个带宽,这与后端使用的带宽接近。 我想这是有道理的,因为stream量都通过负载均衡器路由?

我的负载均衡器和后端位于美国的不同地区。 如果我只在前端运行HAProxy和Varnish,而在后端运行nginx,效率会更高吗? 谢谢!

对于你的第一个问题:是的,在正常的HAProxyconfiguration中,所有stream量都通过负载均衡器进入服务器,以及从服务器再次stream出到客户端。 对于所有负载均衡器来说,这或多或less总是如此,因为它们通常作为HTTP代理或IP级NAT /路由盒来实现。 使用“直接服务器返回”(DSR)时,请参阅inlab.com对DSR的解释 。

我的负载均衡器和后端位于美国的不同地区

呃,为什么? 如果你正在使用地理负载平衡或多播路由,那么我不希望你问这些问题。 在正常使用情况下,您应该将您的服务器安装在同一个机架上,以及一个快速无碰撞的低延迟LAN上。 这将使您的服务器软件的生活更轻松,并为您提供更高的服务器性能,以及更一致/可靠的性能特点…

您正在使用的软件的规范设置将是这样的:

nginx(用于HTTP压缩) – >清漆caching(用于caching) – > HTTP级负载均衡器(HAProxy,或nginx,或内置的Varnish) – > web服务器。

或者,如果你的负载很高,你可以在最前面有多个nginx或varnish服务器。 但那是每秒有数千个请求的网站。

对于第二个问题当你问“更有效率”时,我对你的意思有疑问。 更高效的服务器之间的stream量较低? 从边缘看,由于清漆caching阻止了一些stream量进一步回stream。 在CPU使用方面效率更高 – 只要保持逻辑结构相同,就可以将服务周转到较less负载的物理服务器。

你已经把它倒过来了……把清漆放在负载平衡器的前面,这样他们可以在早期回答尽可能多的请求(如果你有太多的stream量去处理一个清漆,一个低开销的TCP负载平衡器,如ldirectord),然后将Varnish传回HAProxy实例并从那里开始。 在HAProxies 后面涂漆似乎完全倒退到了我的面前 – 你想尽可能早地减lessstream量。