Nginx 为什么使用Mongrel2?

Nginx 为什么使用Mongrel2?,nginx,lua,webserver,mongrel2,Nginx,Lua,Webserver,Mongrel2,我不知道的目的是什么,而的目的是什么 (是的,我已经读过了,但我必须是一个太多的书呆子,无法理解它与nginx的根本区别) 我当前的web应用程序堆栈是: -nginx:web服务器 -Lua:编程语言 -FastCGI+LuaJIT:将nginx连接到Lua -Postgres:数据库如果您只能说出一件事,那么Mongrel2就是围绕ZeroMQ构建的,这意味着扩展web服务器从未如此容易 如果有请求进来,Mongrel2就会收到它(这里没有什么异常,与NginX和任何其他httpd相同)。接

我不知道的目的是什么,而的目的是什么

(是的,我已经读过了,但我必须是一个太多的书呆子,无法理解它与nginx的根本区别)

我当前的web应用程序堆栈是:
-nginx:web服务器
-Lua:编程语言
-FastCGI+LuaJIT:将nginx连接到Lua

-Postgres:数据库

如果您只能说出一件事,那么Mongrel2就是围绕ZeroMQ构建的,这意味着扩展web服务器从未如此容易

如果有请求进来,Mongrel2就会收到它(这里没有什么异常,与NginX和任何其他httpd相同)。接下来发生的事情是,Mongrel2将编译响应的任务分发到n个(启用ZeroMQ)后端,等待它们完成工作,接收结果,编译响应并将其发送到客户端

现在,神奇之处在于n可以是任意数字,并且n中的每一个都可以用ZeroMQ(20左右)支持的任何语言编写,所有这些都可以通过网络传输,因此每个n都可以是一个专用的框,可能位于另一个数据中心中


换句话说:有了NginX和其他所有您必须在逻辑层实现可伸缩性的功能,Mongrel2允许您(从请求/响应周期的角度)从请求到达基础架构的地方开始,在httpd上,不要让复杂性渗透到逻辑层,这会使复杂性至少上升一个数量级。

您应该查看每种方法的优点,并根据您的用例决定使用其中一种或两种方法

虽然nginx似乎完成了mongrel2在表面上提供的所有功能,但您会发现两者在焦点上存在重大差异

Nginx是一款前端web服务器,它可以将请求代理到后端web服务器/appserver,还可以提供静态内容

Mongrel2是堆栈中的一个细微变化。如前所述,它的强大之处在于它使用zeromq作为它与后端AppServer之间的传输层。它可以为动态请求URL(应用请求)提供服务,并使用zeromq将任务的计算部分定向到不同的后端。。 mongrel2不仅允许您提供http、WebSocket等服务,还允许您提供来自同一服务器的其他协议(如果您愿意的话)。用户永远不会知道应用程序的各个部分是从不同的后端提供的

如果您对webapp功能的需求不断变化,或者您希望添加流媒体、在后端使用不同语言编写代码等功能,那么我肯定会关注mongrel2。甚至有一辆混合动力车
在这里,您使用nginx/haproxy/varnish进行静态文件和缓存,其他所有内容都指向mongrel2。

做的相同,只是不同而已。挑一个你喜欢的like@MarkusGattolfastcgi的目的是什么?我可以用它来做。用任何语言,不是吗?