76 votes

Pourquoi utiliser Mongrel2?

Je suis confus de ce but Mongrel2 sert/offre que nginx n'est pas déjà le faire.

(Oui, j'ai lu le manuel mais je dois être trop noob pour comprendre comment il est fondamentalement différent de nginx)

Mon application web actuelle de la pile est:
- nginx: webserver
- Lua: langage de programmation
- FastCGI + LuaJIT: pour connecter nginx pour Lua
- Postgres: base de données

116voto

Markus Gattol Points 1313

Si seulement vous pouviez nom d'une chose, puis il serait que Mongrel2 est construire autour de ZeroMQ ce qui signifie que le détartrage de votre serveur web n'a jamais été aussi facile.

Si une demande, Mongrel2 reçoit (rien d'inhabituel ici, de même que pour NginX et tout autre httpd). La prochaine chose qui se passe est que Mongrel2 distribue la tâche de compiler une réponse à n (ZeroMQ est activé) backends, il attend pour faire le travail, reçoit les résultats, compile la réponse et l'envoie au client.

Maintenant, la magie est du au fait que n peut être n'importe quel nombre et que chacun de n peut être écrit dans n'importe quel langage supporté par ZeroMQ (20) de plus, tout se passe à travers le réseau, de sorte que chaque n peut être une boîte dédiée, voire dans un autre centre de données.

En d'autres termes: avec NginX et tout le reste que vous avez à faire évolutivité dans votre logique de niveau, Mongrel2 vous permet de démarrer (à partir d'une requête/réponse du cycle de point de vue) ce droit lorsque la demande atteint votre infrastructure, à la httpd plutôt que de laisser pénétrer la complexité à votre logique de niveau qui souffle de la complexité à la hausse d'au moins un ordre de grandeur de l'omi.

13voto

lapax Points 171

Vous devriez regarder les forces de chacun et de décider d'utiliser une ou les deux en fonction de votre cas d'utilisation..

Alors, il semble que nginx fait tout ce que mongrel2 fournit dans la surface, vous y trouverez majore différences entre les deux.

Nginx brille comme un front-end serveur, qui peut demandes de proxy pour votre backend serveurs web/appservers et aussi de servir du contenu statique.

mongrel2 est une légère modification dans la pile. comme mentionné, c'est la puissance vient de l'utilisation de zeromq que la couche de transport entre elle et le backend appservers. Il peut servir dynamique de requête de l'url (app demande) et de diriger le calcul de la portion de la tâche à différentes sorties à l'aide de zeromq.. mongrel2 vous permet de servir non pas seulement http, websockets, etc, mais d'autres protocoles (si vous êtes enclin à le faire), tous de la même serveur. l'utilisateur ne saura jamais que des parties de l'application sont servis à partir de différents backends.

Si vos exigences pour le fonctionnement de votre webapp ne cesse de changer ou vous voulez ajouter des choses comme le streaming, la capacité de code dans différentes langues dans le back-end, etc, alors je serait certainement regarder mongrel2.. ou même avoir un hybride lorsque vous utilisez nginx/haproxy/vernis pour les fichiers statiques et la mise en cache, et tout le reste est dirigé vers mongrel2 ..

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X