nginx lua webserver mongrel2

nginx - ¿Por qué usar Mongrel2?



lua webserver (2)

Debería ver las fortalezas de cada uno y decidir usar uno o ambos dependiendo de sus casos de uso.

Mientras, parece que nginx hace todo lo que mongrel2 proporciona en la superficie, encontrará que hay grandes diferencias de enfoque entre los dos.

Nginx brilla como un servidor web front-end, que puede enviar solicitudes de proxy a los servidores web / servidores de aplicaciones back-end y también sirve contenido estático.

Mongrel2 es un ligero cambio en la pila. Como se mencionó, su poder proviene de su uso de zeromq como la capa de transporte entre él y los servidores de aplicaciones back-end. Puede servir URL de solicitudes dinámicas (solicitudes de aplicaciones) y dirigir la parte de cálculo de la tarea a diferentes backends usando zeromq .. mongrel2 le permite servir no solo http, websockets, etc., sino otros protocolos (si está inclinado a hacerlo) ) todo desde el mismo servidor. el usuario nunca sabría que porciones de la aplicación están siendo servidas desde diferentes backends.

Si sus requisitos para la funcionalidad de su aplicación web siguen cambiando o si desea agregar cosas como la transmisión, la capacidad de codificar en diferentes idiomas en la parte de atrás, etc., entonces definitivamente miraría a mongrel2. O incluso tenga un híbrido donde use nginx / haproxy / barn para los archivos estáticos y el almacenamiento en caché, y todo lo demás se dirige a mongrel2.

Estoy confundido con qué propósito sirve / proporciona Mongrel2 que nginx aún no lo hace.

(Sí, he leído el manual pero debo ser demasiado novato para comprender que es fundamentalmente diferente de nginx)

Mi pila actual de aplicaciones web es:
- nginx : servidor web
- Lua : lenguaje de programación
- FastCGI + LuaJIT : para conectar nginx a Lua
- Postgres : base de datos


Si solo pudieras nombrar una cosa, sería que Mongrel2 está construido alrededor de ZeroMQ, lo que significa que escalar tu servidor web nunca ha sido tan fácil.

Si entra una solicitud, Mongrel2 la recibe (nada inusual aquí, lo mismo que para NginX y cualquier otro httpd). Lo siguiente que sucede es que Mongrel2 distribuye la tarea de compilar una respuesta a n backends (habilitados para ZeroMQ), espera a que hagan el trabajo, recibe resultados, compila la respuesta y la envía al cliente.

Ahora, la magia está en el hecho de que n puede ser cualquier número y que cada uno de n puede escribirse en cualquier idioma como sea compatible con ZeroMQ (20 o más) plus, todo pasa por la red para que cada n pueda ser un recuadro dedicado , posiblemente en otro centro de datos.

En otras palabras: con NginX y todo lo demás tiene que hacer escalabilidad en su nivel lógico, Mongrel2 le permite iniciar (desde el punto de vista del ciclo de solicitud / respuesta) este derecho donde la solicitud llega a su infraestructura, en el httpd en lugar de dejando que la complejidad penetre hasta su nivel lógico, lo que hace que la complejidad suba por lo menos un orden de magnitud imo.