Mongrel
Mongrel — open-source HTTP-библиотека и веб-сервер, основанные на Ruby и написанные Зедом Шоу (Zed Shaw)[2]. Используется для запуска Ruby веб-приложений и предоставления стандартного HTTP-интерфейса. Это делает возможным использование отдельных слоев, таких как web proxy, балансировщика нагрузки или комбинацию обоих подходов, вместо необходимости использовать более традиционные методы, используемые для запуска сценариев, такие как FastCGI или SCGI. Это стало возможным за счет интеграции анализатора пользовательских высокопроизводительных HTTP запросов — Ragel.
Mongrel | |
---|---|
Тип | Веб-сервер |
Разработчик | Zed A. Shaw |
Написана на | Ruby |
Операционная система | Cross-platform |
Последняя версия | |
Лицензия | Лицензия Ruby |
Сайт | rubygems.org/gems/mongrel |
С 2010 года проект больше не развивается, код Mongrel больше не поддерживается Ruby начиная с версии 1.9.2. Ему на замену пришёл Mongrel2, который уже не привязан к конкретному языку или фреймворку[3] и не имеет ничего общего с реализацией Mongrel за исключением парсера HTTP-запросов.
Развертывание
Одна из самых популярных конфигураций — это Apache 2.2 как балансировщик нагрузки, используя mod_proxy_balancer в связке с несколькими копиями Mongrel, каждая из которых запущена на отдельном порту. Оно так же может быть очень легко настроено с помощью утилиты mongrel_cluster_management. Apache может распределять входящие запросы между существующими процессами Mongrel и, в соответствии с настройками, может сам обрабатывать статическое содержимое без обращения к Mongrel. До недавнего времени Twitter был ярким тому примером.[4]
Для тех, кто не желает пользоваться Apache, существует возможность развертывать кластер Mongrel на альтернативных веб-серверах, таких как nginx или lighttpd и загружать балансировщики различными способами, такими как Pound или решениями на основе аппаратного обеспечения.
Mongrel способен самостоятельно обслуживать приложения Ruby on Rails, без использования сторонних веб-серверов, однако однопоточные приложения, соответствующие этой конфигурации, не пригодны к большим нагрузкам.
Примечания
- https://github.com/mongrel/mongrel/releases/tag/rel_1-1-5
- Zed Shaw. Learn Python 3 the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code. — Addison-Wesley Professional;, 2017.
- Language Agnostic . Дата обращения: 26 мая 2017.
- «Unicorn Power», Twitter Engineering Blog, March 30, 2010