Навіщо використовувати Mongrel2?


76

Мене бентежить, яку мету Mongrel2 виконує / передбачає, що nginx ще не робить.

(Так, я прочитав посібник, але мушу бути занадто великим нубом, щоб зрозуміти, як це принципово відрізняється від nginx)

Мій поточний стек веб-додатків:
- nginx : веб-сервер
- Lua : мова програмування
- FastCGI + LuaJIT : для підключення nginx до Lua
- Postgres : база даних


1
робить те саме, просто по-різному. виберіть того, хто вам подобається
Хав'єр

Відповіді:


116

Якби ви могли назвати лише одне, тоді могло б бути, що Mongrel2 будується навколо ZeroMQ, що означає, що масштабування вашого веб-сервера ніколи не було простішим.

Якщо запит надходить, Mongrel2 отримує його (тут немає нічого незвичного, як для NginX та будь-якого іншого httpd). Наступне, що трапляється, це те, що Mongrel2 розподіляє завдання компіляції відповіді на n (із підтримкою ZeroMQ), очікує, поки вони виконають роботу, отримує результати, компілює відповідь і відправляє її клієнту.

Зараз магія полягає в тому, що n може бути будь-яким числом, і що кожен з n може бути записаний будь-якою мовою, як це підтримується ZeroMQ (20 або більше) плюс, все йде по мережі, тому кожен n може бути виділеним полем , можливо, в іншому центрі обробки даних.

Іншими словами: за допомогою NginX та всього іншого вам потрібно зробити масштабованість у своєму логічному рівні, Mongrel2 дозволяє вам запустити (з точки зору циклу запиту / відповіді) це право, коли запит потрапляє у вашу інфраструктуру, а не на httpd, а не на дозволяючи складності проникати до вашого логічного рівня, який роздуває складність вгору принаймні на один порядок imo.


@MarkusGattol Яка мета fastcgi? Я можу це зробити за допомогою цього. На будь-якій мові, ні?
Абдала Черкейра,

13

Ви повинні розглянути сильні сторони кожного і вирішити використовувати один або обидва варіанти залежно від випадків використання.

Хоча, здається, nginx робить все, що mongrel2 надає на поверхні, ви виявите, що між ними є великі відмінності у фокусі.

Nginx виглядає як інтерфейсний веб-сервер, який може проксі-запити до ваших серверних серверів / серверів додатків, а також обслуговувати статичний вміст.

Mongrel2 - це незначна зміна стека. Як вже згадувалося, його потужність походить від використання Zeromq як транспортного рівня між ним та серверними серверними додатками. Він може обслуговувати динамічні URL-адреси запитів (запити додатків) і направляти обчислювальну частину завдання на різні бэкэнди за допомогою zeromq .. mongrel2 дозволяє обслуговувати не лише http, веб-сокети тощо, але й інші протоколи (якщо ви схильні це робити) ) все з одного сервера. користувач ніколи не дізнається, що частини програми обслуговуються з різних серверних систем.

Якщо ваші вимоги до функціональності вашого веб-додатка постійно змінюються або ви хочете додати такі речі, як потокове передавання, можливість кодування різними мовами у задній частині тощо, тоді я б точно подивився на mongrel2. Або навіть є гібрид, де ви використовуєте nginx / haproxy / varnish для статичних файлів та кешування, а все інше спрямовано на mongrel2.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.