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

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

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

我当前的架构:

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

或者将 Varnish 放在代理后面和每个 Web 服务器前面是否更好,就像这样?:

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

我还会将我的服务器迁移到 Linode,因为它们似乎提供了更好的价格,尽管我听到过对其负载均衡器(称之为“NodeBalancers”)的褒贬不一的评价,但总体而言,我听到过对其服务和可靠性的好评。

我的问题是:

  • 以上哪种设置更合理?
  • 我应该添加或替换什么吗?
  • 我应该为 Varnish 配置什么类型的硬件?
  • 将 Varnish 与每个 Web 服务器放在同一台服务器上可以吗?

答案1

Varnish 不支持 SSL,因此 Varnish->nginx 或 Varnish->HAProxy 无法与 SSL 一起使用。

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

让 Varnish(缓存)与 Web 服务器共享硬件和/或操作系统可能会有问题,也可能不是问题。这很大程度上取决于您服务的流量参数。硬件扩展也是如此。这也取决于您的目标。

相关内容