Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
net_tech / Лабораторнаработа 6 (FTP, WWWl).doc
Скачиваний:
27
Добавлен:
10.12.2013
Размер:
125.44 Кб
Скачать
  • server config - директива применяется при конфигурировании основного сервера, т.е. относится ко всем поступающим запросам или ко всему серверу как таковому. Все директивы, не попадающие в ниже описанные контексты, находятся к контексте server config.

  • Virtual host - директива применяется внутри раздела, определяемого директивой

  • <VirtualHost имя_виртуального_сервера>

  • .....

  • #директивы, находящиеся здесь относятся только к запросам, в

  • #заголовке Host которых указан данный виртуальный сервер

  • .....

  • </VirtualHost>

Сама по себе директива VirtualHost может находиться только в контексте server-config.

  • directory - директива применяется внутри разделов типа

  • <Directory путь_к_каталогу>

  • ....

  • #директивы, находящиеся здесь относятся только к запросам файлов,

  • #находящихся в указанном каталоге (или его подкаталогах); путь

  • #отсчитывается от каталога, указанного директивой DocumentRoot

  • ....

  • </Directory>

  • <Location начало_URI>

  • ....

  • #директивы, находящиеся здесь относятся только к запросам URI, #начинающихся со строки, указанной в директиве Location

  • ....

  • </Location>

  • <Files рег._выражение_для_файлов>

  • ....

  • #директивы, находящиеся здесь относятся только к запросам файлов, #имена которых удовлетворяют указанному регулярному выражению

  • ....

  • </Files>

Сами по себе директивы Location, Directory и Files могут находиться как в контексте server config, так и в контексте virtual host. Более того, директива Files может находиться внутри раздела Directory, а также в контексте htaccess.

  • htaccess - директива применяется в файле .htaccess (имя файла начинается с точки), расположенном в каком-либо каталоге внутри дерева документов сервера. Директива срабатывает для всех запросов файлов из этого каталога и его подкаталогов (если там не находится другой файл .htaccess - в этом случае последний будет иметь приоритет). Директивы файла .htaccess имею приоритет над директивами раздела <Directory ...>...</Directory>, относящимися к тому же каталогу.

Если одна и та же директива в разных контекстах имеет разные значения, то действует значение в наиболее узком применимом к данному запросу контексте.

Управление доступом, аутентификацией и авторизацией

Apache предоставляет следующие возможности по контролю доступа к ресурсам веб-сервера:

  • контроль адреса клиента,

  • аутентификация клиента по имени и паролю,

  • авторизация - т.е. определение прав опознанного клиента на доступ к тому или иному ресурсу.

Для реализации этого механизма применяются директивы allow, deny. order, AuthName, AuthType, AuthUserFile, AuthGroupFile, require, satisfy.

Возможности контроль доступа могут быть существенно расширены дополнительными модулями, написанными c использованием Perl-API (модуль mod_perl).

Выполнение CGI-скриптов

На стадии разбора URI сервер определяет файл, который был запрошен клиентом. Если на стадии определения MIME-типа документа было обнаружено, что файл должен быть интерпретирован как исполнимая программа, то для генерации ответа Apache запускает этот файл, в соответствии со спецификацями интерфейса CGI.

SSI (Server Side Includes)

В Apache реализован механизм SSI, который представляет собой разбор HTML-документов на стороне сервера с целью обнаружения в документе и выполнения директив, добавляющих в документ дополнительную информацию. Директивы могут вставлять в HTML-документ другой HTML-файл или результат работы CGI-программы; вставлять характеристики документа (размер файла, дату последней модификации), текущее время и т.п.

Перекодировка кириллицы

Модуль mod_charset производит переобразование кириллических документов в кодировку, требуемую клиенту. При этом сначала рассматриваются заголовки запроса (Accept-Charset), потом, если требуемую кодировку определить не удалось, - конфигурационные директивы модуля mod_charset (CharsetSelectionOrder и др.), а в случае неудачи документ возвращается в кодировке, определенной директивой CharsetDeafult.

Кодировка, в которой документ хранится на диске, задается директивой CharsetSourceEnc, которую можно применять во всех конфигурационных контекстах.

Perl API и модуль mod_perl

Модуль mod_perl реализует интерфейс API к серверу Apache на языке Perl, что позволяет модифицировать поведение сервера на любой фазе обработки запроса в соответствии с конкретными требованиями пользователя (например производить аутентификацию не по файлу с именами пользователей и их паролями, а по базе данных). Кроме того, модуль позволяет существенно ускорить исполнение CGI-скриптов, написанных на Perl: теперь не запускается отдельного процесса Perl-интепретатора для каждого скрипта; интерпретатор находится внутри процесса веб-сервера; более того, однажды исполненный скрипт кэшируется в компилированном виде.

Apache и Java

Модуль mod_jserv является интерфейсом сервера Apache к исполнителю сервлетов (servlet engine), написанных на языке Java. Интерфейс jserv сходен по функциональности с CGI, но обладает повышенной гибкостью.

Apache и SSL

Модуль mod_ssl реализует в Apache слой SSL, осуществляющий шифрование всего потока данных между клиентом и сервером. Для всех остальных частей веб-сервера модуль mod_ssl является прозрачным. Для работы в этом режиме, требуется броузер, поддерживающий мехнизм SSL (этому условию удовлетворяют все современные распространенные броузеры).

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

Установка сервера осуществляется в следующей последовательности:

  • распаковать дистрибутив Apache;

  • если требуется установка дополнительных модулей (например, mod_perl, mod_jserv, mod_ssl) - распаковать их дистрибутивы в том же каталоге; при конфигурировании сервера следовать дополнительным инструкциям по установке модулей, приведенных в их дистрибутивах;

  • сконфигурировать исходный код сервера командой

  • ./configure --prefix=/путь/установки/Apache

(возможны различные дополнительные ключи, свзяанные с добавлением или удалением модулей);

  • скомпилировать и установить сервер командами "make" и "make install".

Все компоненты сервера устанавливаются в дерево, корнем которого является каталог, указанный в параметре "--prefix"; вне этого дерева никакие компоненты программы не располагаются (это может быть неверно для дополнительных модулей - см. документацию к этим модулям). Этот же каталог должен быть значением конфигурационной директивы ServerRoot. Конфигурационный файл httpd.conf находится в каталоге ServerRoot/conf.

Запуск, перезапуск и останов сервера выполняются командой ServerRoot/bin/apachectl с параметрами start, stop, restart, graceful.