Сергей Супрунов
Современная жизнь немыслима без Интернета, а Интернету необходимы веб-серверы.
Смутное подозрение, что Apache – далеко не единственный HTTP-сервер в мире,
подтолкнуло меня на проведение небольшого исследования в этой области.
Как отбирались претенденты
Подручной тестовой платформой была операционная система FreeBSD, поэтому в
кандидаты на «обозрение» попали только приложения, присутствующие в коллекции
Портов. По «make search» в различных комбинациях в
каталоге /usr/ports/www были выявлены 30 пакетов, претендующих на звание веб-сервера.
1-й этап
Первым этапом был «конкурс документов» – просматривались заявленные сайты
претендентов на предмет их существования и хоть какого-то развития за последние
несколько лет. Учитывалась также актуальность версии, представленной в Портах.
В результате отсеялись 7 серверов (AOLServer, caudium,
dhttpd, fhttpd, lws, roxen и tclhttpd), как не подающие признаков жизни либо
давно не обновлявшиеся в коллекции Портов.
Для веб-сервера micro_httpd (его версия в Портах
тоже сильно устарела) в порядке исключения, учитывая его мизерный размер, было
принято решение провести тестирование свежей версии, собранной вручную из исходников
(при условии, что сборка пройдёт успешно).
Таким образом, до следующего этапа добралось 23
приложения.
Замечание: поскольку Apache 1.3 и Apache 2.2
значительно отличаются друг от друга, то они в обзоре рассматривались как
разные веб-серверы; ветку 2.0, как промежуточный продукт, было решено не
рассматривать.
2-й этап
После отсева «по документам» претендентов ждало следующее испытание –
установка в систему. Для удобства тестирования при инсталляции были нарушены
традиции размещения вновь устанавливаемого ПО в каталог /usr/local, и для всех
пакетов в качестве префикса указывался /usr/local/<имя_веб-сервера>.
Все пакеты устанавливались из коллекции Портов с
параметрами по умолчанию, то есть установка выполнялась таким образом:
# cd /usr/ports/www/<имя_веб-сервера>
# make depends
# make install
PREFIX=/usr/local/<имя_веб-сервера>
Вторая строка (make depends без указания
префикса) используется, чтобы пакеты зависимостей раскладывались по
традиционным местам, где их будут потом искать другие программы, а не
устанавливались в каталог конкретного сервера в соответствии с префиксом. Время
сборки указывалось без учёта зависимостей. Этот этап успешно преодолели все
претенденты.