После двух лет разработки увидел свет релиз легковесного http-сервера Monkey HTTP Daemon 0.10, исходные тексты которого распространяются в рамках лицензии GPLv2. По сравнению с прошлой версией код Monkey на 85% переписан, в результате чего удалось значительно оптимизировать процесс отдачи статического контента и организовать возможность переброса запросов к скриптам на другой http-сервер или на специальный сервер приложений.
Для обработки http-запросов в сервере применяется гибридный подход, сочетающий в себе отделение фиксированного числа потоков, каждый из которых обрабатывает соединения в асинхронном режиме работы (Epoll). Поддерживается только платформа Linux, так как код привязан к некоторым возможностям, появившимся в Linux ядре 2.6.28. Благодаря низкому потреблению памяти и незначительной нагрузке на CPU, сервер отлично подходит для установки на встраиваемые системы.
Monkey полностью поддерживает возможности, определенные в спецификации HTTP 1.1 (включая Pipelining), может работать с виртуальными хостами. Начиная с версии 0.10 сервер поддерживает подключение плагинов, среди которых можно отметить плагин с реализацией управляющей shell-оболочки, позволяющей смотреть статистику и выполнять отладочные операции, а также плагин дающий возможность определять дополнительные правила по ограничению доступа к серверу.
Для настройки параметров работы сервера используется иерархия простых файлов конфигурации, в каждом из которых в линейном виде указывается набор относящихся к определенной категории директив. Например, в monkey.conf задается общая конфигурации сервера, в monkey.mime параметры поддерживаемых mime-типов, в plugins.load список загружаемых плагинов, в директории sites каждый файл закреплен за отдельным виртуальным хостом, а в директории plugins перечисляются настройки плагинов.
|