基于机架的Web服务的服务和负载平衡?

时间:2011-07-07 08:35:39

标签: ruby web-services nginx sinatra haproxy

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

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

我很好奇当前服务这些类型的应用程序的“最佳实践”,特别是在没有静态内容时。

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

1 个答案:

答案 0 :(得分:0)

如果您通过HAProxy提供HTTP流量,则优于Nginx的优势在于能够根据数据包中的标头,网址,Cookie和其他信息对每个请求进行不同的检查,修改和反应。

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

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