【问题标题】:serving and load balancing for Rack-based web services?基于机架的 Web 服务的服务和负载平衡?
【发布时间】:2011-07-25 04:31:46
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ruby web-services nginx sinatra haproxy


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-04-01
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多