Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Хокинс С. - Администрирование Web-сервера Apache и руководст

.pdf
Скачиваний:
88
Добавлен:
13.09.2013
Размер:
4.5 Mб
Скачать

Часть IV

Приложения

Вэтой части...

A.Основные директивы

Б.Прочие директивы

B. Концепция протокола TCP/IP

Г. Преобразование имен в IP адреса

Д. Решение проблем, возникающих при работе сети Е. Концепция Unix

Ж. Концепция WINDOWS NT

3.Коды состояния HTTP

И.Регулярные выражения К. Интерфейс mod_perl API Л. Операторы языка РНР

 

Приложение

 

А

ОСНОВНЫЕ

ДИРЕКТИВЫ

Вэтомприложении...

 

А.1. Введение

184

А.2. Основные директивы

184

А.1. Введение

Этот раздел содержит сведения о синтаксисе и использовании основных директив сервера Apache. Основные концепции и использование директив можно найти в предметном указателе.

А.2. Основные директивы

А.2.1. Директива AccessConfig

Синтаксис:

AccessConfig

имя файла

Умолчание:

AccessConfig

conf/access.conf

Контекст:

конфигурирование сервера, виртуальный узел

Эта директива используется для объявления файла, содержащего дополнительные директивы. Сервер считывает этот файл после завершения чтения файла ResourceConfig. Имя файла задается относительно каталога ServerRoot.

Чтобы сервер Apache считывал некоторое количество дополнительных директив из файла site_specific, хранящегося в каталоге conf, включите в файл Resource_Config следую щую команду:

AccessConfig conf/site specific

Чтобы отключить эту возможность, введите команду:

AccessConfig /dev/null

184

Часть IV. Приложения

А.2.2. Директива AccessFileName

Синтаксис:

AccessFileName имя файла

Умолчание:

AccessFileName .htaccess

Контекст:

конфигурирование сервера, виртуальный узел

Эта директива задает имя файла, в котором хранится список управления доступом. Сервер будет искать файл с таким именем в каждом каталоге, находящемся на пути к до кументу, предполагая, что файлы управления доступом для этого каталога запущены.

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

AccessFileName

.htaccess

 

 

 

 

'

Н

а

п

р

и

м

е

р

,когдасерверполучаетзапроскфайлу/usr/local/w

тиве, то чтобы проверить права и вернуть требующийся файл, сервер будет проверять последовательно ; директивы, имеющиеся в следующих файлах:

/usr/.htaccess

/usr/local/.htaccess

/usr/local/web/.htaccess

Очевидно, что последовательная проверка всех этих каталогов влечет за собой деградацию производи тельности. Эту возможность можно глобально отключить следующей директивой:

<Directory> AllowOverride None

</Directory>

A.2.3. Директива AddModule

Синтаксис:

AddModule

модуль модуль . . .

Контекст:

конфигурирование сервера

Совместимость:

директива AddModule имеется только для сервера Apache версии

1.2 и выше Эта директива может быть использована для активизации модулей, которые были

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

Пример

Для активизации использования модуля mod_peri задайте следующую директиву:

AddModulemod_perl

А.2.4. Директива AllowOverride

Синтаксис:

AllowOverride override override . . .

Умолчание:

AllowOverride All

Контекст:

каталог

Эта директива влияет на действие файла .htaccess или любого другого файла управления доступом, определенного директивой AccessFileName. В зависимости от значения переменной override эта директива будет влиять на управление доступом одним из перечисленных в табл. АЛ способов.

Приложение А. Основные директивы

185

Таблица А.1. Влияние на управление доступом значения переменной override

Значение переменной

Override

Действие

None

 

Сервер не считывает файл.

All

 

Сервер будет реагировать на все директивы.

AuthConfig

 

Активизирует использование директив санкциони

 

 

рования доступа (AuthDBMGroupFile,

 

 

AuthDBMUserFile, AuthGroupFile, AuthName,

 

 

AuthType, AuthUserFile, require и Т.Д.).

FileInfo

 

Активизирует использование директив, контроли

 

 

рующих ТИПЫ документов (AddEncoding,

 

 

AddLanguage, AddType, DefaultType,

 

 

ErrorDocument, LanguagePriority).

Indexes

Активизирует использование директив, контролирую

 

 

щих индексирование каталогов (AddDescription,

 

 

AddIcon, AddI conByEncoding, AddIconByType,

 

 

DefaultIcon, DirectoryIndex, FancyIndexing,

 

 

HeaderName, IndexIgnore, IndexOptions,

 

 

ReadmeName).

Limit

 

Активизирует использование директив, контроли

 

 

рующих доступ к узлу (allow, deny и order).

Options

 

Активизирует использование директив, контролирую

 

 

щих возможности каталогов (Options, XBitHack).

А.2.5. Директива AuthName

Синтаксис:

AuthName

область санкций

Контекст:

каталог,

.htaccess

Перекрытие:

AuthConfig

Эта директива предназначена для установки имен области санкций для каталога. Об ласть санкций предоставляется клиенту таким образом, что пользователи будут знать, ка кие вводить имя пользователя и пароль. Директива всегда используется совместно с дирек тивами AuthConfig, require и комбинацией директив AuthUserFile и AuthGroupFile.

Пример

Для спецификации области санкций business_a необходимо задать следующую директиву:

AuthName business_a

А.2.6. Директива AuthType

Синтаксис: AuthType тип Контекст: каталог, .htaccess Перекрытие: AuthConfmg

Эта директива устанавливает тип идентификации пользователя для каталога. В на стоящее время единственным возможным значением параметра тип является значе ние Basic. Директива используется совместно с директивами AuthName, require и комбинацией директив AuthUserFile и AuthGroupFile.

186

Часть IV. Приложения

Чтобы задать тип идентификации Basic, воспользуйтесь следующей директивой:

AuthType Basic

А.2.7.ДирективаBindAddress

Синтаксис:

BindAddress

saddr

Умолчание:

BindAddress

*

Контекст:

конфигурирование сервера

Unix сервер может быть сконфигурирован для прослушивания соединений по всем IP адресам сервера сразу или только по одному определенному IP адресу. Возможные значения параметра saddr перечислены в табл. А.2.

ТаблицаА.2. Значенияпараметра saddr

Параметр

Значение

 

Прослушиватьсоединенияпо всемIP адресам.

<IР адрес>

Прослушивать соединения только по указанному IP адресу.

<полное имя домена>

Прослушивать соединения только по указанному домену.

Примечание

Cпомощью этойдирективыреализуется одинизметодов виртуальногохостинга. Детально виртуальный хостингописанв главе5,"Хостингнескольких Web узлов".

А.2.8. Директива ClearModuleList

Синтаксис:

ClearModuleList

Контекст:

конфигурирование сервера

Совместимость:

директива ClearModuleList присутствует, начиная с версии

 

сервера Apache 1.2

Сервер имеет предопределенный список активных модулей. Для того, чтобы очи стить этот список, и предназначена директива ClearM oduleList. После использова ния этой директивы необходимо с помощью директивы AddModule составить альтер нативный список модулей.

Для очистки встроенного списка активных модулей, задайте следующую директиву:

ClearModuleList

А.2.9. Директива DefaultType

Синтаксис:

DefaultType

mime mun

Умолчание:

DefaultType

text/html

Контекст:

конфигурирование сервера, виртуальный узел, каталоги, файл

 

.htaccess

 

Перекрытие:

Filelnfo

 

Сервер Apache должен иметь возможность сообщать клиентам МIMЕ тип документов, которые он рассылает даже тогда, когда тип документа из его расширения не ясен. Эта ди

Приложение А. Основные директивы

187

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

Чтобы задать в качестве типа по умолчанию тип txt/html, воспользуемся директивой:

DefaultType text/html

А.2.10. Директива <Directory>

Синтаксис: <Directory каталогу . . . </Directory> Контекст: конфигурирование сервера, виртуальный узел

Директивы, которые применяются для объединения других директив в группы, ко торые будут применяться только для определенного каталога и их подкаталогов. Обра тите внимание на то, что для обозначения любого одиночного символа или группы символов, в этой директиве можно использовать групповые символы "*" и "?". Более подробно об ограничении области действия директив можно узнать в главе 1, "Основные концепции". Спецификации каталогов не могут быть вложенными. Даже в случае, когда множественные разделы каталогов совпадают с каталогом или родитель ским каталогом документа, директивы применяются, начиная с самого короткого со ответствия. Следует напомнить также, что это имеет отношение и к директивам, на ходящимся в файле .htaccess.

Пример

Чтобы область действия директивы DirectiveА (совершенно абстрактной) распространялась на ка талог /home/site2 и егоподкаталоги, воспользуйтесь следующей конструкцией:

<Directory /home/site2> DirectiveA

<Directory>

A.2.11. Директива DocumentRoot

Синтаксис:

DocumentRoot каталог имя файла

Умолчание:

DocumentRoot /usr/local/etc/httpd/htdocs

Контекст:

конфигурирование сервера, виртуальный узел

Эта директива позволяет задавать корневой каталог, отличный от стандартного. Например, если в качестве DocumentRoot объявлен каталог /usr/businessa, это бу дет Значить, что URL http://www.businessa.com/index.html относится к документу /usr/businessa/index.html.

Каталог, определенный с помощью этой директивы является ключевым, так как многие другие директивы позволяют задавать путь относительно каталога DocumentRoot.

Примечание

При объявлении пути DocumentRoot указание замыкающей косой черты является ошибкой (например/somedir/).

188

Часть IV. Приложения

Чтобы объявить в качестве корневого каталога вашего Web узла каталог /usr/businessa, можно воспользоваться следующей директивой.

Documentroot /usr/businessa

А.2.12. Директива ErrorDocument

Синтаксис:

ErrorDocument код ошибки документ

Контекст:

конфигурирование сервера, виртуальный узел, каталоги, файл

 

.htaccess

Перекрытие:

FileInfo

По умолчанию сервер Apache обрабатывает ошибки, выдавая запрограммирован ные сообщения о них. Эта директива позволяет изменить такое поведение одним из следующих способов:

Для вывода видоизмененного сообщения необходимо задать директиву:

ErrorDocument 403 "Having problems. Come back later"

Пример

Для перенаправления на локальный URL:

ErrorDocument 401 /customer.html

ErrorDocument 404 /cgi bin/ customer.pl

Для перенаправления на внешний URL:

ErrorDocument 500 http://www.blah.com/cgi bin/boo boo

Примечание

При использовании директивы ErrorDocument 401 она должна ссылаться на локальный документ.

А.2.13. Директива ErrorLog

Синтаксис:

ErrorLog

имя файла

Умолчание:

ErrorLog

logs/error_log

Контекст:

конфигурирование сервера, виртуальный узел

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

Приложение А. Основные директивы

189

Задать в качестве каталога регистрации ошибок каталог /var/adm/logs/http.log можно с по мощьюкоманды:

ErrorLog /var/adm/logs/http.log

A.2.14. Директива <Files>

Синтаксис:

<Files имя файла>. . . </Files>

Контекст:

конфигурирование сервера, виртуальный узел, файл

 

.htaccess

Совместимость:

версия 1.2 и выше

Эта директива позволяет осуществлять управление доступом по имени файла. Директи вы, заключенные между директивами <Files>, будут иметь воздействие только на указан ный файл. Есть директивы аналогичного характера и для каталогов URL. Секции <Files> обрабатываются в порядке их появления в конфигурационном файле после считывания секций <Directory> и файлов .htaccess, но до секций <Location>.

Имя файла может задаваться точным литеральным именем файла (например text/.html) или комбинацией литеральных и групповых символов (например text?/html, te*.html).

Чтобы директива DirectiveA воздействовала на все файлы, начинающиеся с последовательности символов srh, обратитесь к помощи следующей директивы:

<Files srh*> DirectiveA

<Files>

A.2.15. Директива Group

Синтаксис:

Group Unix группа

Умолчание:

Group # 1

Контекст:

конфигурирование сервера, виртуальный узел

Эта директива позволяет задать системную группу Unix (как видно из файла /etc/group), которой будет пользоваться сервер при обслуживании запросов.

Чтобы создать группу httpg, можно воспользоваться следующей директивой: group httpg

Примечание

Из соображений безопасности рекомендуется создать группу специально для обслуживания запросов : сервером Apache.

А.2.16. Директива HostNameLookups

Синтаксис:

HostNameLookups

on | off

Умолчание:

HostNameLookups

on

Контекст:

конфигурирование сервера, виртуальный узел

190

Часть IV. Приложения

Эта директива необходима для включения режима просмотра базы DNS. В этом случае в регистрационных файлах вместо IP адресов можно использовать имена узлов. Необходимо заметить, что процесс просмотра DNS информации приводит к сущест венному снижению производительности сервера.

Чтобы немного"перекрыть кислород"вашему серверу, достаточновоспользоваться следующейдирективой:

HostNameLookups on

А.2.17. Директива IdentityCheck

Синтаксис:

IdentityCheck

on \ off

Умолчание:

IdentityCheck

off

Контекст:

конфигурирование сервера, виртуа льный узел

Эта директива позволяет регистрировать имена пользователей в соответствии со стандартом RFC 1413 при каждом подключении. Заметим, что для того, чтобы это ра ботало эффективно, на клиентской машине должен работать сервис identd или что то подобное с аналогичными функциями. Значение параметра boolean должно быть установлено в on или off.

Для включения режима идентификации пользователя достаточно:

IdentityCheck on

А.2.18. Директива <IfModule>

Синтаксис: <Ifmodule [ ! ]имя модуля> ... </IfModule> Умолчание: нет Контекст: все

Эта директива позволяет пользователю задавать или отменять выполнение директив в зависимости от наличия или отсутствия модуля. Директивы, находящиеся внутри опера торной скобки <Ifmodule имя модуля>, рассматриваются только тогда, когда модуль имя модуля прикомпилирован к серверу, если модуль с указанным именем не прикомпилиро ван, директивы будут проигнорированы. Указание перед именем модуля знака восклица ния инвертирует действие директивы. (Например указание !modulea означает, что директи вы будут просматриваться только в том случае, когда модуль modulea отсутствует.)

А.2.19. Директива KeepAlive

Синтаксис: (Apache 1.1) KeepAlive макс запрос Умолчание: (Apache 1.1) KeepAlive 5 Синтаксис: (Apache 1.2) KeepAlive on/off

Умолчание: умолчание: (Apache 1.2) KeepAlive On Контекст: конфигурирование сервера

В сервере Apache 1.1, эта директива позволяет задать верхний предел числа запро сов KeepAlive на одного клиента. Для сервера Apache версии 1.2 и выше значение может быть также установлено в On, что позволяет делать устойчивые соединения, или O f f , что отключает такую возможность. См. директиву MaxKeepAliveRequests.

Приложение А. Основные директивы

191

Соседние файлы в предмете Основы электротехники и электроники