Установить Web-сервер очень просто! Web-службы не сравнимы в плане легкости администрирования с системами электронной почты и службой DNS.
Выбор сервера
Большинство поставщиков UNIX не включают HTTP-сервер в системный дистрибутив (правда, в состав FreeBSD и Red Hat входит HTTP-сервер Apache). Поэтому придется потратить некоторое время на выяснение того, какой сервер наилучшим образом подходит для данного приложения и выбранной платформы. К счастью, на сегодняшний день имеется целый ряд весьма неплохих серверов. Наиболее популярные из них выпускаются компаниями Netscape и Apache.
Достаточно полное сопоставление характеристик доступных HTTP-серверов можно найти на Web-узле webcompare.intemet.com. Ниже указано несколько факторов, которые следует учитывать при осуществлении выбора:
- надежность;
- производительность;
- своевременность обновлений и исправлений ошибок;
- доступность исходного кода;
- цена;
- безопасность и контроль доступа;
- возможность использования в качестве прокси-сервера;
- возможность шифрования.
Последние несколько лет сервер Apache лидирует по показателю производительности и числу поддерживаемых операционных систем. Исходя из этих соображений он и был выбран в качестве сервера приложений для данной главы.
Компилирование и инсталляция сервера Apache
HTTP-сервер Apache распространяется бесплатно, и его полный исходный код доступен на Web-узле www.apache.org. Первым делом обратитесь на данный узел и загрузите последнюю версию сервера.
По окончании загрузки вызовите сценарий configure (включен в дистрибутив), который автоматически определяет тип операционной системы, а также устанавливает соответствующие файлы сборки проекта. Потребуется указать каталог, где должен располагаться сервер Apache. Для этого предназначена опция --prefix:
% ./configure —prefix=/usr/local/apache/
Некоторые компоненты сервера Apache могут включаться и отключаться с помощью опций -enable-module= и -disable-module= сценария configure. Установленный по умолчанию набор модулей вполне приемлем, но имеются и дополнительные модули (табл. 22.2).
Таблица 22.2. Дополнительные модули Apache, которые по умолчанию не включены
|
Модуль
|
Назначение
|
|
auth_dbm
|
Использует базу данных DBM для управления доступом со стороны пользователей/групп (рекомендуется)1
|
|
auth_db
|
Использует базу данных DB для управления доступом со стороны пользователей/групп (рекомендуется)1
|
|
use rt rack
|
Позволяет отслеживать щелчки мышью в броузерах, поддерживающих технологию "cookie"
|
|
rewrite
|
Переписывает URL-адреса, используя регулярные выражения
|
|
expires
|
Позволяет включать в документ дату его истечения
|
|
proxy
|
Конфигурирует Apache в качестве прокси-сервера (подробнее о данной технологии рассказывается далее в этой главе)
|
1 Рекомендуется использовать один из перечисленных модулей (но не оба сразу).
В табл. 22.3 перечислены модули, которые могут быть отключены. Отключая неиспользуемые модули, следует исходить из соображений безопасности и повышения производительности.
Таблица 22.3. Модули Apache, которые могут быть отключены
|
Модуль
|
Функция
|
|
asis
|
Позволяет посылать файлы указанных типов без использования HTTP-заголовков
|
|
autoindex
|
Индексирует каталоги, в которых отсутствует начальная HTML-страница (например, index.html)
|
|
env
|
Позволяет устанавливать специальные переменные среды для CGI-сценариев
|
|
include
|
Разрешает использовать серверные вставки (старый способ создания динамического содержимого).
|
|
userdir
|
Разрешает пользователям иметь собственные HTML-каталоги
|
Полный перечень стандартных модулей можно найти в файле src/Configuration, входящем в дистрибутив Apache, либо по адресу www.apache.org/ docs/mod/index.html.
После выполнения сценария configure запустите сценарии make и make install для фактической компиляции и установки соответствующих файлов. Во FreeBSD сервер Apache является одним из дополнительных программных пакетов, который может быть установлен из каталога /usr/ports (подробнее об этом каталоге рассказывается в параграфе 27.9). Для инсталляции Apache перейдите в каталог /usr/ports/www/apachl3 и введите команду make.
Конфигурирование сервера Apache
После установки сервера необходимо сконфигурировать его с учетом выполняемых функций. Все файлы конфигурации находятся в каталоге conf (например, /usr/local/apache/conf). Необходимо проверить и настроить три различных файла конфигурации: httpd.conf, srm.conf и access.conf.
Файл httpd.conf определяет, каким образом демон Apache (httpd) взаимодействует с системой. В этом файле задается TCP-порт, через который HTTP-сервер принимает запросы (обычно это порт 80). На одном компьютере можно запустить несколько HTTP-серверов, подключенных к различным портам. Помимо этого в файле httpd.conf указывается местоположение журнальных файлов, а также задаются различные параметры, определяющие характеристики сети и производительность сервера. Здесь же осуществляется настройка виртуальных интерфейсов (дополнительные сведения по этому вопросу приводятся в следующем параграфе).
Ресурсы, доступ к которым необходим серверу, настраиваются в файле srm.conf. В нем располагается самая важная директива — DocumentRoot, которая задает корневой каталог для обслуживаемых документов. В этом файле также содержится ряд дополнительных установок, связанных, в частности, с обработкой "специальных" URL-адресов (например, http:// www.xor.com/~steve).
Параметры безопасности устанавливаются в файле access.conf. Он включает директивы, которые позволяют управлять доступом на уровне каталога или файла. С их помощью можно предотвратить доступ к важным файлам через демон httpd как из внешнего мира, так и внутри организации.
Необходимо задать как минимум два уровня управления доступом: на одном уровне будет охватываться весь каталог документов, а второй должен применяться только к каталогу cgi-bin. В последнем случае вызов сценариев осуществляется только из каталога cgi-bin. Таким образом, отдельные пользователи не могут создавать "бреши" в системе безопасности — случайно или намеренно — с помощью своих собственных сценариев. Для установки этого ограничения задайте опцию ExecCGI в файле srm.conf.
Запуск сервера Apache
Демон httpd можно запустить вручную либо воспользовавшись стартовыми сценариями, имеющимися в системе. Последний способ предпочтительнее, поскольку гарантирует, что Web-сервер перезапускается всякий раз при перезагрузке компьютера. Для запуска сервера вручную следует ввести примерно такую команду:
% /usr/local/apache/apachectl start
Если требуется, чтобы демон httpd запускался автоматически на этапе начальной загрузки, вставьте следующий фрагмент когда в функцию lосаlrc() стартовых сценариев либо включите его в файл /etc/rc.local, если используется отдельный локальный сценарий.
if [ -х /usr/local/apache/httpd ]; then
/usr/local/apache/apachectl start
echo -n 'www_server'
fi