Hiawatha
Hiawatha Webserver | |
---|---|
Тип | Веб-сервер |
Автор | Хуго Лейсинк (Hugo Leisink) |
Разработчик | Хуго Лейсинк (Hugo Leisink) |
Написана на | C |
Операционные системы | POSIX, Кроссплатформенное программное обеспечение |
Языки интерфейса | Английский |
Первый выпуск | сентябрь 2002[1] |
Аппаратные платформы | Linux, Windows, Solaris, FreeBSD, OpenBSD, UNIX-подобная операционная система, AIX, HP-UX, QNX, OS X, Haiku[2] |
Последняя версия | 10.4 |
Репозиторий | gitlab.com/hsleisink/hia… |
Лицензия | GPLv2 |
Сайт | hiawatha-webserver.org |
Hiawatha — веб-сервер, доступный для множества операционных систем. Разработка ведётся Хуго Лейсинком (Hugo Leisink) с 2002 года[3].
История
[править | править код]Hiawatha был создан в январе 2002 в виде небольшого веб-сервера, способного работать на серверах с устаревшим аппаратным обеспечением. Изначально он был написан для Интернет-серверов в студенческих общежитиях в городе Делфт, Южная Голландия, Нидерланды. Автор, будучи студентом в области компьютерных наук с особым интересом в сфере информационной безопасности, включил в разрабатываемый веб-сервер различные экспериментальные функции безопасности, многие из которых являются уникальными и со временем доказали свою полезность. Автор говорил:
Мне давно известно об уязвимостях, существующих в других серверах. Вот что меня беспокоит: время исполнения CGI скриптов. CGI процесс на других серверах может исполняться вечно. Один-единственный CGI скрипт может подвергнуть сервер DoS-атаке. Системному администратору приходится прерывать скрипт. А как насчет клиента (или хакера), который пытается подобрать пароли для HTTP аутентификации? Эти проблемы воодушевили меня к созданию Hiawatha с настройками для максимального времени отправки запроса, максимального времени исполнения CGI скриптов, блокирования клиентов, и т. д. По моему мнению, каждый сервер должен обладать такими функциями.
Номер журнала Linux Magazine за январь 2009 года содержал отдельную статью о веб-сервере Hiawatha.
- Наиболее важные релизы
- 1.0: Сентябрь 2002 года. Базовый, но функциональный веб-сервер.
- 2.0: Март 2004 года. Использование многопоточности вместо системного вызова fork.
- 3.0: Сентябрь 2004 года. Поддержка SSL.
- 4.0: Декабрь 2005 года. Добавлен CGI-wrapper для повышенной безопасности.
- 5.0: Октябрь 2006 года. Поддержка FastCGI для повышения скорости CGI.
- 5.2: Ноябрь 2006 года. Первичная интеграция в систему портов FreeBSD начиная с версии 5.2 в декабре 2006 года[4], в коллекцию портов OpenBSD начиная с версии 5.7 в марте 2007 года[5].
- 5.12: Август 2007 года. Поддержка URL rewriting.
- 6.0: Октябрь 2007 года. Поддержка IPv6.
- 6.6: Апрель 2008 года. Поддержка XSLT.
- 6.10: Октябрь 2008 года. Добавлена функция предупреждения межсайтовой подделки запроса.
- 7.0: Февраль 2010 года. Поддержка удаленного мониторинга.
- 8.0: Январь 2012 года. Autoconf заменен на CMake, OpenSSL заменен на PolarSSL.
- 9.0: Март 2013 года. Клиенты обслуживаются через пул потоков вместо создания потоков на лету.
Функциональные возможности
[править | править код]В веб-сервере Hiawatha реализованы все важнейшие функции современного веб-сервера, такие как:
- поддержка CGI и FastCGI с балансировкой нагрузки
- Поддержка больших файлов
- Функциональность Reverse proxy
- Поддержка Chroot
- Инструменты для работы с URL с поддержкой URL rewriting
- Поддержка SSL and TLS
- HTTP аутентификация
- Шейпинг трафика
- Внутреннее кэширование файлов
- Поддержка IPv6
- Сжатие HTTP c использованием gzip
- Виртуальный хостинг
- Поддержка WebDAV приложений
- Поддержка Server Name Indication начиная с версии 8.6
Hiawatha содержит множество функций безопасности, которых нет в других веб-серверах, такие как предотвращение внедрения SQL-кода, межсайтового скриптинга (XSS), межсайтовой подделки запроса(CSRF), защита от DoS-атак, контроль ссылок на внешние изображения, блокирование потенциальных взломщиков, ограничение времени выполнения CGI приложений[6]. Автор работал над поддержкой RFC3546, но из-за недостатка документации по OpenSSL это не удавалось реализовать. Все же, поддержка RFC3546 была включена начиная с версии 8.6, с использованием библиотеки PolarSSLv1.2.
Производительность
[править | править код]Хотя основное внимание при разработке веб-сервера уделялось вопросам безопасности, Hiawatha показывает хорошие результаты в скорости и производительности. Согласно тесту производительности, проведенному в рамках независимого исследования SaltwaterC, Hiawatha опережает другие программы в отдаче статического контента[7]. Hiawatha поддерживает балансируемый FastCGI и имеет собственную утилиту PHP-FastCGI utility, хотя последняя устарела и была замещена утилитой FastCGI Process Manager (PHP-FPM)[8]. Это позволяет быстро и масштабируемо обслуживать динамичный контент.
Примечания
[править | править код]- ↑ https://www.hiawatha-webserver.org/about
- ↑ Hiawatha on Haiku OS . Дата обращения: 25 мая 2014. Архивировано 11 мая 2013 года.
- ↑ About page of Hiawatha webserver . Дата обращения: 25 мая 2014. Архивировано 5 июля 2014 года.
- ↑ FreeBSD Ports of Hiawatha . Дата обращения: 25 мая 2014. Архивировано 15 мая 2014 года.
- ↑ OpenBSD Ports of Hiawatha . Дата обращения: 25 мая 2014. Архивировано 29 декабря 2011 года.
- ↑ List of features . Дата обращения: 25 мая 2014. Архивировано 29 мая 2014 года.
- ↑ PHP_web_serving_study Архивировано 26 апреля 2012 года.
- ↑ Release notes for Hiawatha 8.7 — Hiawatha webserver . Дата обращения: 25 мая 2014. Архивировано 16 января 2014 года.
Ссылки
[править | править код]- hiawatha-webserver.org — официальный сайт Hiawatha
- «Hiawatha Web Server» — статья, описывающая процесс установки и начальной настройка Hiawatha
- «Der sichere Webserver Hiawatha» — статья в немецком «Linux magazine»