Cherokee HTTP Server

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:04, 21 января 2019.
Cherokee HTTP Server
Cherokee-logo-bar.png
Cherokee screen.png
Создатели: Álvaro López Ortega, Cherokee Project
Постоянный выпуск: 1.2.104 / 2 April 2014 года; 5 years ago (2014-04-02)
Написана на: C , Python and JavaScript
Операционная система: Кросс-платформенное
Тип ПО: Вэб сервис
Лицензия: GNU General Public License
Веб-сайт cherokee-project.com


Cherokee — это инновационный, многофункциональный и простой в настройке веб-сервер с открытым исходным кодом, разработанный для следующего поколения защищенных веб-приложений с высокой степенью одновременности. Он предлагает поддержку широко распространенных в настоящее время технологий: FastCGI, SCGI, PHP, CGI, SSI, зашифрованные соединения TLS и SSL, виртуальные хосты, аутентификация, кодирование на лету, балансировка нагрузки, файлы журналов, совместимые с Apache, балансировка базы данных без простоев обновления, обратный HTTP-прокси, uWSGI, LDAP, видеостриминг, кеширование контента и многое другое.[Источник 1]

Ключевая особенность: удобный интерфейс под названием cherokee-admin, который обеспечивает беспроблемную настройку каждой функции сервера. Этот интерфейс администрирования позволяет настраивать веб-сервер, не беспокоясь о редактировании текстового файла, написанного с определенным синтаксисом.

Возможности

Рисунок 1 - Панель администрирования Cherokee

В отличие от многих других веб-серверов, Cherokee хорошо обрабатывает много одновременных подключений, требует небольшого объема памяти и обеспечивает средства балансировки нагрузки. Он подходит для использования в широком спектре систем, от встроенных устройств до больших инфраструктур корпоративного уровня. Одновременно с кроссплатформенностью Cherokee, предлагает нативную производительность для Unix, Linux и Windows систем.

Cherokee является свободным программным обеспечением, имеет тщательно продуманную архитектуру, полностью модульный и имеет чистую базу кода. Доступ к коду для мастеринга позволяет настраивать, изменять или расширять все в соответствии с конкретными потребностями. Cherokee поддерживается и развивается сообществом. [Источник 2]

Особенности

Основные особенности:

  • TLS и SSL
  • Виртуальные серверы
  • Перезапись URL и перенаправления, поддерживающие регулярные выражения
  • Аутентификация через htdigest, htpasswd, LDAP, MySQL, PAM
  • Обратный HTTP прокси
  • Балансирование нагрузки HTTP
  • Формировка трафика
  • Настраиваемый и Apache-совместимый форматы логов
  • Возможность запуска веб-приложений по запросу
  • Потоковое аудио и видео
  • Сжатия gzip и deflate, производящиеся "на лету"
  • Устойчивость к 10 000 одновременным подключениям
  • SSI
  • CGI
  • FastCGI
  • SCGI
  • uWSGI
  • Поддержка chroot
  • Статистика RRDtool
  • Графический интерфейс настроек

Требования к системе

Cherokee полностью модульный и может быть адаптирован к конкретным потребностям. Таким образом, требования к диску будут различаться в зависимости от параметров, выбранных для процесса сборки. Статическая сборка для встроенных устройств может занимать всего 200 КБ.

У Cherokee нет никаких зависимостей кроме стандартного libc. Например, для отдачи динамического контента понадобится PHP, пакет rrdtool для сбора статистики и визуализации графиков, MySQL или LDAP для их поддержки в качестве механизмов аутентификации для защищенного контента, ffmpeg для сборки модуля видеостриминга и т. д.

Cherokee имеет веб-интерфейс администратора, написанный на Python, поэтому, для использования cherokee-admin понадобится Python. В условиях ограниченного дискового пространства это не будет проблемой, поскольку можно выполнить минимальную установку на целевом хосте, предварительно настроив ее в другом месте. Python также используется для создания документации, и Cherokee включает в себя ряд тестов обеспечения качества, написанных на нем. Для внесения кода в проект или проверки, все ли работает на сервере, также понадобится интерпретатор Python. Основными релизами Python, на которые ориентируются разработчики, являются 2.4, 2.5 и 2.6. [Источник 3]

Настройка

Для полнофункциональной работы сервера настройки почти не требуется. Конфигурация Cherokee по умолчанию может использоваться для обслуживания статического веб-сайта.

Веб-приложения

В Cherokee предусмотрены мастера настройки для автоматической настройки веб-сервера для выполнения определенных задач или запуска сред и приложений. Они обеспечивают поддержку: PHP через FastCGI, Ruby on Rails, ColdFusion, GlassFish, Django, Alfresco, GNU Mailman, .NET с Mono, rTorrent, Symfony и Zend Engine, а также общие потоковое видео и uWSGI.

Совместимые устройства

В течение последних нескольких лет Cherokee был принят многими производителями электронных устройств и IoT-технологий. Некоторые примеры включают в себя экшн-камеры и дроны GoPro, экшн-камеры Xiaomi, наборы Digi International для интернета вещей, прицелы ATN Corporation, камеры безопасности Defender, и многие другие. Поскольку Cherokee имеет открытый исходный код и не требует от производителей лицензирования кода, нет способа узнать, сколько именно компаний встраивают Cherokee в свои продукты. [Источник 4]

Установка

Установка на unix-системы

В видео приведена сборка исходного кода и установка под unix на примере ubuntu.

Установка на примере RaspberryPi

Проверяем версию, конфигурируем с нужными нам параметрами и собираем:

Рисунок 2 - Логотип Cherokee после настройки сервера

sudo su
svn checkout http://svn.github.com/cherokee/webserver cherokee
svn up cherokee
./configure --localstatedir=/var --prefix=/usr --sysconfdir=/etc --with-wwwroot=/var/www --with-wwwuser=www-data --with-wwwgroup=www-data
make && make install

Так как в конфигурации в качестве пользователя, из-под которого будет работать веб-сервер, мы указали www-data, нужно его создать и разрешить ему доступ в папку /var/www:

useradd www-data -M -s /bin/false -U
mkdir /var/www
chmod -R 775 /var/www
chown -R www-data: /var/www

Для автозапуска веб-сервера нужно переместить в /etc/init.d/ скрипт Cherokee. Исходники Cherokee должны находиться в папке contrib. Переходим в папку с этим скриптом и выполняем:

cp cherokee /etc/init.d/
chmod 755 /etc/init.d/cherokee
update-rc.d cherokee defaults

Запускаем сервер командой:

sudo /etc/init.d/cherokee start

В результате в браузере должна открыться стартовая страница с логотипом Cherokee.

Источники

  1. Features Highlights // Cherokee-project. Дата обновления: 10.09.2018. URL: http://cherokee-project.com/ (дата обращения: 16.01.2019)
  2. Features Highlights // Cherokee-project. Дата обновления: 02.01.2019. URL: http://cherokee-project.com/ (дата обращения: 16.01.2019)
  3. Requirements // Cherokee-project. Дата обновления: 23.07.2018. URL: http://cherokee-project.com/doc/basics_requirements.html (дата обращения: 16.01.2019)
  4. Cherokee documentation // Cherokee-project. Дата обновления: 10.12.2018. URL: http://cherokee-project.com/doc/ (дата обращения: 16.01.2019)

Ссылки