Учебно-методические материалы для студентов кафедры АСОИУ

Директивы конфигурации веб-сервера Apache

Приведены основные (не все) директивы управления работой веб-сервера Apache2, полное описание доступно на сайте http://httpd.apache.org/.

ServerType
Для этой директивы значением по умолчанию является ServerType standalone. Серверы, работающие в автономном режиме (standalone), запускаются из загрузочных сценариев при запуске системы. Такая установка рекомендуется для улучшения производительности.
В качестве альтернативы режиму standalone можно воспользоваться режимом inetd, который обеспечивается демоном inetd.
Port
В этой директиве задается номер сетевого порта, на котором будет работать ваш сервер, если он запущен в автономном режиме (если используется inetd, то номер порта следует задать в файле /etc/services). Значением по умолчанию для этой директивы является Port 80. Этот порт является стандартным для протокола HTTP (см. порты сетевых сервисов) и рекомендуется для использования на основном сервере вашего Web-узла.
HostnameLookups
Директива HostnameLookups указывает, записывается ли в журнальный файл доменное имя узла или только его IP-адрес. По умолчанию сервер сохраняет имя компьютера, но если ожидаемый объем трафика очень велик, отключение опции HostnameLookups позволит уменьшить нагрузку на сервер. Это делается простым изменением строки на HostnameLookups off.
User и Group
Эти параметры задают действительные идентификаторы пользователя и группы, которые присваиваются серверу, работающему в автономном режиме. По умолчанию в качестве имени пользователя принимается nobody, что является превосходным выбором с точки зрения защиты информации. Ни в коем случае нельзя запускать сервер с привилегиями суперпользователя (root).
В качестве идентификатора группы следует использовать идентификатор какой-нибудь нейтральной группы, имеющейся в системе. Часто используется группа news. Либо можно специально создать для сервера новую группу. Если указанные пользователь и группа не существуют в системе, сервер не будет работать.
ServerAdmin webmaster@example.com
Официальный электронный адрес вебмастера вашего Web-узла.
ServerRoot
В этой директиве задается базовый каталог, в котором будет установлено программное обеспечение HTTP-сервера Apache.
BindAddress
Эта директива используется для компьютеров, имеющих несколько сетевых интерфейсов. С ее помощью можно устанавливать прослушивание сервером еще какого-то из IP-адресов компьютера. По умолчанию эта директива закомментирована, и сервер производит прослушивание всех адресов компьютера.
ErrorLog /usr/local/apache/logs/error_log и CustomLog /usr/local/apache/logs/access_log common
При помощи этих двух директив задается путь к log-файлам, в которых регистрируются ошибки и попытки доступа к серверу соответственно. В файле, указанном в директиве ErrorLog, сервер сохраняет сообщения диагностики, включая сообщения об ошибках, выдаваемые сценариями CGI. В файле, указанном в директиве CustomLog, сервер сохраняет все запросы клиентов. Если включена описанная выше опция HostnameLookups, то вместе с запросами регистрируются имена компьютеров.
ServerName
Директива ServerName позволяет задать имя хоста, возвращаемое клиенту. Имя, которое вы определяете здесь, должно быть зарегистрированным доменным именем вашего хоста. Если сервер не имеет зарегистрированного имени, вы можете указать здесь его адрес IP, но вам придется обращаться к нему по адресу (например, http://192.168.0.1/) и это может сильно осложнить переадресацию ресурсов.
Timeout
Это промежуток времени в секундах (по умолчанию &mdash 300), в течение которого сервер ждет продолжения недополученного запроса или продолжает попытки возобновления приостановленной передачи ответа.
KeepAlive
KeepAlive является свойством протокола HTTP 1.1, позволяющим ускорить обработку запросов путем удержания соединения и выполнения нескольких запросов. В HTTP 1.0 передача Web-страницы с четырьмя встроенными изображениями потребовала бы пять отдельных соединений, а с использованием KeepAlive все последовательные запросы производятся в рамках одного соединения. По умолчанию &mdsh; KeepAlive On
MaxClients
Директива MaxClients устанавливает максимальное число копий сервера, которые могут выполняться одновременно. Когда достигается этот предел (по умолчанию — 150), новые запросы получают отказ. Если вам не хочется отказывать пользователям, не устанавливайте слишком маленькое значение. Медленный ответ все-таки лучше, чем отказ от обслуживания.
Listen
Эта директива позволяет привязать Apache к конкретному адресу IP, и/или порту, в дополнение к порту, определенному по умолчанию.
DocumentRoot
В этой директиве задается каталог, из которого берутся передаваемые клиентам документы. Можно предоставлять клиентам и файлы, находящиеся в других каталогах, — для этого используются символьные ссылки.
UserDir public_html
Название каталога, которое прибавляется к именам пользовательских домашних каталогов при получении запроса ~user (напр."http://www.example.com/~user"). Если не требуется использовать возможность пользовательских каталогов, следует указать UserDir DISABLED.
DirectoryIndex index.html
Эта директива позволяет задать название документа, возвращаемого по запросу, который не содержит в строке URI названия документа. Если вы указываете несколько имен, разделяйте их пробелами. Пример:
DirectoryIndex index.html index.php index.htm default.html
Сервер будет искать перечисленные файлы в соответствующем порядке.
IndexOptions FancyIndexing
При получении запроса на передачу каталога сервер Apache:
  • находит файл, указанный в директиве DirectoryIndex (если таковой существует), и передает его клиенту;
  • если файл DirectoryIndex не существует, передает клиенту оглавление каталога.

Если выбрана опция Fancylndexing, то в оглавлении используются значки и описания файлов. Если эта опция отключена, сервер представляет оглавление в более простом виде.
AccessFileName
Имя файла, который сервер ищет в каждом каталоге для определения прав доступа. По умолчанию — .htaccess (с точкой в начале).
Чтобы подсказать браузеру, какие файлы ему предстоит обрабатывать, сервер формирует определенный код типа документа, основываясь на спецификации MIME - Multipurpose Internet Mail Extensions - многоцелевые почтовые расширения Internet) и передает этот код в заголовке HTTP-протокола.
DefaultType
Директива DefaultType определяет MIME-тип, который будет использоваться для какого-либо документа, если сервер не сможет определить его по иным признакам, например по расширению. По умолчанию значение DefaultType — text/plain. Если большая часть файлов бинарники (программы, картинки и т.п.) стоит изменить значение на "application/octet-stream", чтобы предотвратить попытку браузера показать содержимое двоичного файла.
AddEncoding x-compress Z и AddEncoding x-gzip gz tgz
Эти директивы позволяют сжимать отдаваемые документы перед отправкой, что экономит трафик и ускоряет загрузку. Браузеры, поддерживающие эту возможность (Mozilla, SeaMonkey, FireFox), распаковывают полученные файлы «на лету».
Redirect
Директива Redirect позволяет переадресовать запрос к ранее существовавшему в именном пространстве сервера документу на его новый адрес. Пример:
Redirect http://example.com/old-location/test.html http://example.com/new-location/test.html
Alias
Директивы Alias дают возможность предоставлять доступ к документам, находящимся не только в корневом каталоге сервера (DocumentRoot) и его подкаталогах, но и в других каталогах. По умолчанию в директиве Alias задан только один псевдоним — /icons, используемый директивами Addlcon и AddIconByType. Обратите внимание, что если вы включаете завершающий слэш в «псевдоним», то сервер потребует его присутствия и в URL. Пример:
Alias /icons/ "/usr/local/apache/icons/"
ScriptAlias
Директива указывает каталог, который содержит серверные скрипты. Свойства ScriptAlias-ов такие же, как и у просто Alias-ов, кроме того, что документы в заданном директивой каталоге считаются приложениями и выполняются на сервере, а не отправляются клиенту. К директиве ScriptAlias применяются те  же правила в отношении завершающего "/", что и к Alias.Разрешается добавлять неограниченное число директив ScriptAlias. Примеры:
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
ScriptAlias /user1/ "/usr/home/user1/public_html/cgi-bin/"
AddType
Директива AddType позволяет добавить описания типов файлов (помимо MIME-types) и порядок их обработки. Примеры:
#файлы с расширением .shtml должны обрабатываться как html файлы
AddType text/html .shtml
#файлы с расширением .php должны запускаться как php файлы
AddType application/x-httpd-php .php
#файлы с расширением .html должны запускаться и как php файлы
AddType application/x-httpd-php .html
#файлы с расширением .pl должны запускаться как cgi файлы
AddType application/x-httpd-cgi .pl
AddHandler
Сервер Apache имеет возможности модификации файлов определенных типов перед отправкой их пользователю. Директива AddHandler ставит в соответствие расширению файла определенное действие. Например:
AddHandler server-parsed .shtml
включает поддержку технологии SSI (Server-side Includes) и Apache выполняет разбор файлов .shtm на предмет поиска в них директив SSI. Если изменить параметр так:
AddHandler server-parsed .html
то Apache будет парсить и .html-файлы.
Функция, указанная в директиве AddHandler, не обязательно должна являться встроенной функцией сервера. Директива Action может ставить в соответствие функции из AddHandler сценарий CGI. Например, следующие строки в файле srm.conf сначала указывают серверу, что функция foo поставлена в соответствие сценарию bar.pl, который всякий раз запускается при обращении к файлам с расширением .ext:
Action foo /user/cgi-bin/bar.pl
AddHandler foo .ext
ErrorDocument
Эта директива позволяет переопределить сообщения об ошибках, сопоставив в соответствие кодам ошибок HTTP-сервера текстовые сообщения и/или адреса URL на том же сервере. Например:
ErrorDocument 404 "Этого файла нет, не было и не будет на сервере!"
Options
Эта директива перечисляет список опций, применяемых к указанному каталогу. Опции могут иметь значения "None", "All" или любую комбинацию из "Indexes", "Includes", "FollowSymLinks", "ExecCGI" или "MultiViews". Например, такая конфигурация определяет порядок отображения индексной страницы, разрешает серверные включения (SSI) и переход по символьным ссылкам:
Options Indexes Includes FollowSymLinks
AllowOverride
С параметром none блокирует использование файла .htaccess, с параметром all — разрешает перекрывать дефолные настройки директивами из .htaccess.
Order
Директива, вместе с директивами Allow и Deny, определяющая порядок обращения к ресурсам в соответствии с правами доступа. Пример:
Order allow,deny
Allow from all

CC-BY-CA Анатольев А.Г., 31.01.2012