Mongrel

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Mongrel
Тип Веб-сервер
Разработчик Zed A. Shaw
Написана на Ruby
Операционная система Cross-platform
Последняя версия
Репозиторий github.com/mongrel/mongr…
Лицензия Лицензия Ruby
Сайт rubygems.org/gems/mongrel

Mongrel — open-source HTTP-библиотека и веб-сервер, основанные на Ruby и написанные Зедом Шоу (Zed Shaw)[2]. Используется для запуска Ruby веб-приложений и предоставления стандартного HTTP-интерфейса. Это делает возможным использование отдельных слоев, таких как web proxy, балансировщика нагрузки или комбинацию обоих подходов, вместо необходимости использовать более традиционные методы, используемые для запуска сценариев, такие как FastCGI или SCGI. Это стало возможным за счет интеграции анализатора пользовательских высокопроизводительных HTTP запросов — Ragel.

С 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, без использования сторонних веб-серверов, однако однопоточные приложения, соответствующие этой конфигурации, не пригодны к большим нагрузкам.

Примечания

[править | править код]
  1. https://github.com/mongrel/mongrel/releases/tag/rel_1-1-5
  2. 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. — ISBN 978-0134692883. Архивная копия от 6 сентября 2021 на Wayback Machine Источник. Дата обращения: 9 сентября 2021. Архивировано 6 сентября 2021 года.
  3. Language Agnostic. Дата обращения: 26 мая 2017. Архивировано 4 марта 2017 года.
  4. «Unicorn Power» Архивная копия от 1 мая 2013 на Wayback Machine, Twitter Engineering Blog, March 30, 2010