我搞不懂有什么用途/提供还没有完成的功能。
(是的,我读过,但我一定是个新手,不明白它和nginx有什么根本区别)
我当前的web应用程序堆栈是:
发布于 2011-05-26 09:21:31
如果你只能说出一件事,那就是Mongrel2是围绕ZeroMQ构建的,这意味着你的web服务器的扩展从来没有这么容易过。
如果请求传入,Mongrel2就会收到它(这里没有什么不寻常的地方,与NginX和任何其他httpd一样)。接下来发生的事情是,Mongrel2分发将响应编译到n(启用ZeroMQ)后端的任务,等待它们完成工作,接收结果,编译响应并将其发送给客户端。
现在,神奇的是,n可以是任意数字,并且n中的每一个都可以用ZeroMQ (20左右)支持的任何语言编写,所有这些都跨越网络,因此每个n可以是一个专用的盒子,可能是在另一个数据中心。
换句话说:使用NginX和所有其他的程序,您必须在逻辑层中执行可伸缩性,Mongrel2允许您(从请求/响应周期的角度来看)在请求到达基础结构的位置(在httpd )开始此操作,而不是让复杂度深入到逻辑层,从而使复杂度至少上升一个数量级。
发布于 2012-01-04 18:32:03
您应该考虑每种方法的优点,并根据用例的不同决定使用其中一种或两种。
虽然nginx似乎做了mongrel2表面上提供的所有事情,但是您会发现两者在焦点上有很大的不同。
Nginx是一个前端and服务器,它可以将请求代理到后端and服务器/appserver,还可以提供静态内容。
Mongrel2是堆栈中的一个微小变化。如前所述,它的能力来自于它使用zeromq作为它和后端应用服务器之间的传输层。它可以提供动态请求urls (app请求),并使用zeromq将任务的计算部分引导到不同的后端。mongrel2允许您不仅提供http、websockets等服务,还可以从同一台服务器提供其他协议(如果您愿意的话)。用户永远不会知道应用程序的某些部分是从不同的后端提供的。
如果您对then应用程序功能的需求不断变化,或者您希望添加诸如流、后端以不同语言编写代码的能力等内容,那么我肯定会查看mongrel2。或者甚至有一个混合使用nginx/ have /varnish来进行静态文件和缓存,其他的东西都指向mongrel2。
https://stackoverflow.com/questions/6089091
复制相似问题