Программы, реализующие Web-сервер в системе Linux
Программы, реализующие Web-сервер в системе Linux
В настоящее время существует несколько программных продуктов, позволяющих обеспечить функционирование Web-сервера в системе Linux. Некоторые программы имеют небольшой размер и поддерживают лишь ограниченный набор возможностей, другие представляют собой большие пакеты и позволяют реализовать разнообразные, даже самые "экзотические", функции. Ниже описаны наиболее популярные Web-серверы, предназначенные для Linux.
• Apache. Этот продукт поставляется в составе каждого дистрибутивного пакета Linux. Как правило, процедура установки системы запрашивает пользователя, следует ли инсталлировать сервер Apache. По данным Netcraft (http://www.netcraft.com), в марте 2002 г. 65% всех работающий в Internet Web-серверов составляли серверы Apache. По этой причине основное, внимание в данной главе уделяется данному продукту. Apache представляет собой полнофункциональный Web-сервер и реализует расширенные возможности, например поддерживает сценарии CGI и SSL-взаимодействие. Web-узел Apache расположен по адресу http://httpd.apache.org.
• Roxen. Этот продукт также представляет собой полнофункциональный Web-сервер; во многом он напоминает Apache. Его настройка осуществляется посредством Web-интерфейса, что привлекает некоторых начинающих администраторов. Дополнительную информацию о Roxen можно получить, обратившись по адресу http://www.roxen.com/products/webserver/.
• thttpd. Данный сервер отличается небольшим размером кода. Если объем Apache составляет около 300 Кбайт (в зависимости от набора используемых компонентов эта цифра может изменяться), то объем thttpd — всего 50 Кбайт. Данный сервер работает быстро и эффективно. Несмотря на размер, он поддерживает сценарии CGI, но не обеспечивает SSL-взаимодействие. Более подробные сведения об этом сервере можно получить по адресу http://www.acme.com/software/thttpd/thttpd.html.
• Zeus. Большинство Web-серверов, предназначенных для работы в системе Linux, бесплатно распространяются в исходных кодах, но Zeus является исключением. Это коммерческий продукт; его цена составляет 1700 долларов. Согласно информации, опубликованной на Web-узле Zeus (http://www.zeus.co.uk/products/zws/), данный сервер обеспечивает лучшую масштабируемость по сравнению с другими серверами. Это проявляется при интенсивных обращениях клиентов к Web-серверу.
• Web-серверы на базе ядра. Существуют Web-серверы, которые выполняются как процессы ядра Linux. Дело в том, что действия по предоставлению Web-страниц пользователям в основном сводятся к обращению к дискам и обмену данными через сетевое соединение. Большинство подобных задач могут решаться непосредственно ядром системы, причем выполняются они гораздо эффективнее, чем это происходит при использовании внешних программ. Подобные серверы будут подробно рассмотрены ниже.
• Нетрадиционные серверы. Некоторые программы используют протокол HTTP для выполнения специальных действий, не поддерживаемых обычными Web-серверами. Например, инструменты удаленного администрирования, которые рассматривались в главе 16, формально могут считаться Web-серверами. Взаимодействие с ними можно организовать посредством обычных Web-броузеров, но они принимают обращения от клиентов через порт, отличный от порта 80. Подобные серверы в данной главе рассматриваться не будут.
Если вам необходимо обеспечить выполнение специфических функций, ознакомьтесь с возможностями различных серверов. На сегодняшний день существует так много продуктов, поддерживающих протокол HTTP, что вы почти наверняка найдете подходящую для вас программу.
Как правило, требованиям большинства администраторов вполне удовлетворяет сервер Apache, поставляемый в комплекте со всеми версиями Linux. Если по каким-то причинам вам необходимо минимизировать объем памяти, занимаемый сервером, рассмотрите возможность использования сервера thttpd. Если вам не нужны расширенные возможности, предоставляемые Apache, то имеет смысл выбрать тот сервер, для инсталляции, настройки и поддержки которого требуется меньше усилий. Однако благодаря популярности Apache процедура его настройки многократно проверена, и при этом обычно не возникает проблем, потому большинство администраторов выбирают данный сервер для решения своих задач.
Если вам необходим максимально производительный сервер, это обеспечит сервер, использующий функции ядра, например kHTTPd. Этот продукт позволяет обработать больше запросов, не увеличивая объем ресурсов компьютера. Повысить эффективность обработки запросов позволяют также серверы thttpd и Zeus. Следует заметить, что в подавляющем большинстве случаев производительность сервера ограничивается не ресурсами компьютера, а пропускной способностью линии связи. Если число обращений к вашему серверу превышает возможности линии, установка более эффективно работающих программ не решит проблему. В этом случае вам надо искать способы уменьшения нагрузки на сеть (например, за счет сокращения объема графических материалов), увеличения пропускной способности линии либо рассмотреть возможность размещения Web-сервера в другой сети.
Несмотря на то что в данной главе основное внимание уделяется Apache, материал, изложенный здесь, поможет вам и при работе с другими продуктами, так как принципы конфигурирования различных Web-серверов часто совпадают. Поэтому, зная особенности настройки Apache, для перехода на другой сервер вам достаточно будет изучить структуру его конфигурационного файла.