0

我为我的 rails 应用程序设置了 Apache + Haproxy + Mongrel。当我点击一个特定的服务器页面时,mongrel 需要大约 100 毫秒来处理请求,并且由于我的慢速家庭连接上的数据传输时间,我在大约 5 秒内获得了该页面。

现在我看到在这 5 秒的数据传输过程中,mongrel 没有服务任何其他请求。我很惊讶,因为这意味着 mongrel 正在向客户端提供响应 html,并且在客户端收到它之前被阻止。服务响应不应该是 Apache 的工作吗?

这对 Mongrel 可以提供的请求数量造成了严重的瓶颈,因为这取决于客户端连接的速度。有没有什么方法可以让 mongrel 生成的 html 由 apache/haproxy 或任何其他 Web 服务器(如 nginx)提供服务?
我想知道其他高流量网站是如何管理它的?

4

2 回答 2

1

大多数使用 mongrel 的网站都会使用其中的很多,因为它们会像您遇到的那样阻塞。

你可能会想看看乘客,因为这是他们这些天要走的路。

于 2009-05-11T22:21:45.073 回答
0

mongrel 本身是多线程的,但是默认情况下 rails 一次只能处理一个进程,尽管这可以通过 config.xml 更改。如果是 mongrel,请使用 mongrel-cluster。

仅供参考,乘客还设置了一个应用程序池,但它更好地部署,具有更好的新闻,并且现在更受欢迎。

于 2010-06-14T10:37:43.087 回答