Учебные программы » Сетевые технологии » Дополнительные материалы » Директивы конфигурации веб-сервера Apache
Директивы конфигурации веб-сервера 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
(с точкой в начале). - 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
Чтобы подсказать браузеру, какие файлы ему предстоит обрабатывать, сервер формирует определенный код типа документа, основываясь на спецификации MIME - Multipurpose Internet Mail Extensions - многоцелевые
почтовые расширения Internet) и передает этот код в заголовке HTTP-протокола.
CC-BY-CA Анатольев А.Г., 31.01.2012