Описание тега unicorn
единорог
Unicorn - это HTTP-сервер для приложений Rack, предназначенный для обслуживания быстрых клиентов только в соединениях с малой задержкой и высокой пропускной способностью, а также для использования преимуществ в Unix/Unix-подобных ядрах. Медленные клиенты должны обслуживаться только путем размещения обратного прокси-сервера, способного полностью буферизовать как запрос, так и ответ между Unicorn и медленными клиентами
Характеристики
- Предназначен для Rack, Unix, быстрых клиентов и простоты отладки. Мы вырезали все, что лучше поддерживается операционной системой, nginx или Rack.
- Совместим с Ruby 1.8 и 1.9. Поддержка Рубиния в процессе.
- Управление процессами: Unicorn будет собирать и перезапускать работников, которые умирают из-за сломанных приложений. Нет необходимости самостоятельно управлять несколькими процессами или портами. Unicorn может порождать и управлять любым количеством рабочих процессов, которые вы выбираете для масштабирования на бэкэнд.
- Балансировка нагрузки полностью выполняется ядром операционной системы. Запросы никогда не накапливаются за занятым рабочим процессом.
- Не имеет значения, является ли ваше приложение поточно-ориентированным или нет, все работники работают в своем собственном изолированном адресном пространстве и обслуживают только одного клиента за раз для максимальной надежности.
- Поддерживает все приложения Rack, а также версии Ruby on Rails до Rack через оболочку Rack.
- Встроенное повторное открытие всех файлов журнала в вашем приложении по сигналу USR1. Это позволяет logrotate вращать файлы атомарно и быстро с помощью переименования вместо метода racy и slow copytruncate. Unicorn также предпринимает шаги для обеспечения того, чтобы многострочные записи журнала из одного запроса оставались в одном файле.
- Двоичные обновления в стиле nginx без потери соединений. Вы можете обновить Unicorn, все ваше приложение, библиотеки и даже ваш интерпретатор Ruby, не отбрасывая клиентов. before_fork и after_fork, если у вашего приложения особые потребности при работе с разветвленными процессами. Они не должны понадобиться, когда директива preload_app имеет значение false (по умолчанию).
- Может использоваться с дружественным к копированию при записи управлением памятью для экономии памяти (установив для preload_app значение true).
- Способный прослушивать несколько интерфейсов, включая сокеты UNIX, каждый рабочий процесс может также связываться с частным портом через ловушку after_fork для легкой отладки.
- Простой и легкий Ruby DSL для настройки.
- Декодирует фрагментированные передачи на лету, что позволяет реализовать уведомление о ходе загрузки, а также возможность туннелирования произвольных потоковых протоколов через HTTP.
Лицензия
Авторские права на Unicorn 2009 принадлежат всем авторам (см. Логи в git). Он основан на Mongrel 1.1.5 и имеет ту же лицензию.
Mongrel является авторским правом 2007 Zed A. Shaw и соавторов. Он имеет три лицензии на ваш выбор (GPLv3, GPLv2 или Ruby). См. Прилагаемый файл ЛИЦЕНЗИИ для деталей.
Единорог является 100% свободным программным обеспечением.
Использован...
GitHub использует единорога и имеет отличный технический документ об этом. Они также используют Тонких и Пассажирских, а не только единорогов!
Вопросы
Конфигурация, установка, развертывание, производительность, оптимизация... Но, пожалуйста, сначала прочтите документацию Unicorn!