我目前在 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 服务器共享硬件和/或操作系统可能会有问题,也可能不是问题。这很大程度上取决于您服务的流量参数。硬件扩展也是如此。这也取决于您的目标。