0

作为我们架构的一部分,我们使用仅限内部的基于 HTTP 的 Web 服务来访问需要跨应用程序共享的数据。目前它们被实现为 Sinatra 应用程序。

在每台 Web 服务机器(托管在 EC2 中)上,我们使用 haproxy 对请求进行负载平衡,并使用精简来为它们提供服务。

我很好奇什么被认为是当前为这些类型的应用程序提供服务的“最佳实践”,尤其是在没有静态内容的情况下。

在此设置中使用 nginx 和/或 unicorn 有什么好处吗?我已经看到了一些关于同时使用 nginx 和 haproxy 的建议,但我不确定这会增加什么价值。

4

1 回答 1

0

如果您通过 HAProxy 提供 HTTP 流量,则与 Nginx 相比的优势是能够根据数据包中的标头、url、cookie 和其他信息检查、修改和对每个请求做出不同的反应。

Nginx 也可以做一些有趣的事情,但在大多数情况下,如果您实际上不使用 Nginx 提供内容,它的使用不会超过 HAProxy。

至于您关于最佳实践的问题,这完全取决于您要做什么。我已经看到了将 HAProxy 配置为负载平衡到十几个瘦服务器的设置,其中一次只有一半可用,而另一半在高峰时段可用(基于连接数)。如果您正在使用可以即时启动的 EC2 实例,这将特别好,以避免为您不使用的资源付费。

于 2011-07-24T20:31:46.280 回答