移动Web应用程序以使用HAProxy,Varnish和nginx

我目前在Rackspace上有4个Web应用程序服务器(在应用程序上运行),位于Load Balancer后面(在Rackspace上)。 在负载均衡器前面。 应用程序本身适度使用caching,所以我知道这可以在很大程度上得到改善。

我目前的架构:

RS Load Balancer (SSL Termination) -> 4 Web Servers (Apache) -> MySql

这个设置在我面前已经到位了,现在我有机会清理一些东西,所以我想到了这一点:

Varnish -> HAProxy (reverse proxy, LB, SSL Termination) -> 4 Web Servers (nginx) -> Redis / MySql

要么

Varnish -> nginx (reverse proxy, LB, SSL Termination) -> 4 Web Servers (nginx) -> Redis / MySql

或者,在代理之后并在每个Web服务器之前都有更好的清漆

nginx or HAProxy -> 4 Varnish Servers -> 4 Web Servers (nginx) -> Redis / MySql

我也将我的服务器移动到Linode,因为他们似乎提供了更好的定价,虽然我听说他们的负载平衡器(他们称为“NodeBalancers”)的综合评论,我听到了一般关于他们的服务和可靠性的伟大的事情。

我的问题是:

  • 以上哪个设置更有意义?
  • 有什么我应该添加或replace?
  • 什么types的硬件,我应该提供清漆?
  • 将Varnish与每个Web服务器放在同一台服务器上可以吗?

清漆不做SSL,所以做Varnish-> nginx或Varnish-> HAProxy不能使用SSL。

另一方面,将任何东西放在Varnish(除了SSL终止之外)可能会剥夺您Varnish提供的性能优势。

有清漆(caching)与networking服务器共享硬件和/或操作系统可能,也可能不是问题。 这很大程度上取决于您所服务的stream量的参数。 硬件缩放也是如此。 这也取决于你的目标。