Web-server Apache

Печать

Deny from all

</Files>

Следует отметить, что в отличие от прочих вышеперечисленных директив, которыми задаются диапазоны, директивы <Files> и <FilesMatch> можно включить в файл .htaccess.

1.5. Модули

Как уже указывалось, сервер Apache имеет ядро, гарантирующее выполнение основных функций. Ядро обеспечивает работу директив, возможность чтения конфигурационных файлов, усеченную возможность управления доступом, возможность дополнения функциональных возможностей и полдесятка других основных функциональных возможностей. В частности, директивы, которые перечислены в приложении А, "Основные директивы", всегда присутствуют в стандартном дистрибутиве сервера Apache.

Кроме того, сервер Apache разработан таким образом, что всегда существует возможность варьирования основных функциональных возможностей. Функциональные части могут быть и не подключены к первоначальной исполняемой программе. Эти субсекции называются модулями, причем достаточно значительная их часть поставляется по умолчанию в стандартном дистрибутиве. Чтобы получить перечень подключенных модулей, можно воспользоваться опцией -1:

httpd -1

Включать или не включать определенный модуль в работающий исполняемый код сервера в процессе компиляции или с помощью директив AddModule и ClearModuleList, решает администратор сервера (предположительно наш читатель). В случае разделяемых объектных файлов модулями можно динамически управлять с помощью директивы Load-Module (см. раздел "Динамически разделяемые объекты" в этой главе).

Большое значение имеет порядок загрузки модулей. Возможность управлять порядком загрузки модулей (и, вероятно, исключить некоторые из модулей, загружаемых по умолчанию) реализуется с помощью директивы ClearModuleList :

ClearModuleList

После этого необходимо немедленно перебрать список загружаемых модулей последовательностью директив AddModule:

AddModule modaccess.c

Если модуль включен, он становится составной частью исполняемого процесса httpd с тем же идентификатором процесса и доступом к тем же системным ресурсам. CGI-программы, которые могут быть на Web-узле, отличаются от программы httpd, их вызвавшей, и общаются с ним через ресурсы обмена данными между процессами, а это значительно более медленный метод. В том случае, если скорость является решающим фактором, нужно создавать новый модуль.

Сервер Apache создавался с применением модульной идеологии. На различных стадиях его работы ядро httpd опрашивает все программы, которые были включены, на предмет того, что они "знают" об обработке конфигурационных файлов, исходных текстов http на локальных узлах и запросов пользователей. Именно в таком порядке.

Методы создания собственных модулей достаточно сложны, но вполне доступны. Свой Apache-модуль может создать любой желающий. Более того, большинство самых полезных модулей было разработано сторонними разработчиками для решения своих насущных задач, и только позднее включено в состав дистрибутива \УеЬ-сервера Apache. Полное описание процесса создания нового модуля можно найти в главе 12, "Состав модуля"

Глава 1. Основные концепции 31

<