Конфигурационный файл Apache

Хотя подкаталог /etc/httpd/conf включает все три оригинальных конфигурационных файла, собственно конфигурируется только файл httpd. conf. Остальные CONf-файлы оставлены для совместимости с предыдущими версиями.

Структура файла httpd. conf довольно проста. Ниже приведен его листинг по умолчанию:

##

## httpd.conf - конфигурационный файл HTTP-сервера Apache

##

#

# Построил Rob mcCool на основе конфигурационных файлов NCSA-сервера. #

# Это основной конфигурационный файл сервера. QH содержит

# конфигурационные директивы для сервера. За дополнительными

# инструкциями обращайтесь по адресу <URL: http://www.apache.org/docs/ > #

# Если не понятно, о чем речь - лучше не читать. Если в чем-то

# не уверены - обращайтесь к документации в on-line. Вас предупредили. #

# После обработки этого файла, сервер ищет и обрабатывает файлы

# /usr/conf/srm.conf и /usr/conf/access.conf, если вы не заблокировали

# их здесь директивами ResourceConfig и/или AccessConfig.#

# Директивы конфигурирования разбиты на три раздела:

# 1. Директивы, управляющие работой сервера Apache в целом

# (раздел 'global environment') .

# 2. Директивы, определяющие параметры 'сервера 'main' или 'default',

# соответствующие запросам, не обрабатываемы виртуальным хостом.

# Эти директивы также обеспечивают значения по умолчанию для всех

# виртуальных хостов.

# 3. Установки для виртуальных хостов, позволяющие отправлять

# Web-запросы на другие iP-адреса или хосты в расчете на обработку # аналогичным Apache-сервером.

#

# Имена файлов конфигурации и протокола: Если заданные имена файлов

# управления сервером начинаются с "/" (или "drive:/ " для Win32),

# сервер будет использовать явный путь. Если имена не начинаются

# с "/", значение ServerRoot интерпретируется так: "logs/foo.log"

# для ServerRoot, установленного на "/usr/local/apache" будет

# интерпретироваться сервером как "/usr/local/apache/logs/foo.log".

### Раздел 1: Global Environment #

# Директивы этого раздела определяют поведение Apaohe в целом,

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

# #

# ServerType либо inetd, либо standalone. inetd режим поддерживается

# только на платформе Unix. #

ServerType standalone

#

# ServerRoot: Корень дерева каталогов, в котором сервер хранит # файлы конфигурации, ошибок и протоколов.

#

# Внимание! Если вы хотите разместить его в NfS (или сети), смонтируйте

# файловую систему, затем прочитайте документацию Lockfile (доступную

# по адресу <URL: http://www.apache.org/docs/mod/core.htmlflockfile >),

# и вы избавите себя от массы забот. #

# Не добавляйте косую черту в конце пути каталога. ServerRoot "/etc/httpd"

#

# Команда Lockfile устанавливает путь к файлу блокировки, использующемуся

# если Apache откомпилирован либо с USE_fCNTL_SERiALiZED_ACCEPT, либо с

# USE_fLOCK_SERiALiZED_ACCEPT. Обычно эта команда должна иметь значение

# по умолчанию. Основной причиной, по которой нужно изменять эту

# переменную, является установка каталога протоколов на смонтированной

# NfS, так как файл-блокировки ДОЛЖЕН НАХОДИТЬСЯ НА ЛОКАЛЬНОМ ДИСКЕ.

# PiD главного процесса сервера автоматически добавляется к имени файла. #

Lockfile /var/lock/httpd.lock

# Pidfile: Файл для протоколирования pid сервера Pidfile /var/run/httpd.pid

# Scoreboardfile: Файл для хранения сервером внутренней информации о

# процессе. Требуется не на всех архитектурах. Но если у Вас требуется

# (файл будет создан после запуска Apache), то Вы *должны* убедиться в # том, что ни одна из запускаемых копий Apache не разделяет один и тот # же файл для этой цели.

#

Scoreboardfile /var/run/httpd.Scoreboard

#

# В стандартной конфигурации сервер обработает этот файл,

# файл srm.conf и access.conf в указанном порядке. Два последних файла

# в этом дистрибутиве пусты, а все директивы объединены в один

# файл для простоты. Ниже приведены закомментированные

# значения по умолчанию. Можно заставить сервер проигнорировать

# эти файлы, задав "/dev/null" (для Unix) или

# "mil" (для Win32) в качестве аргументов директив. #

# ResourceConfig conf/srm.conf

#AccessConfig conf/access.conf

#

# Timeout: Количество секунд перед приемом и посылкой тайм-аута. Timeout 300

# KeepAlive: Разрешить или не разрешить устойчивые соединения (более

# одного запроса на каждое соединение). Для запрещения установите в "Off". KeepAlive On

# maxKeepAliveRequests: Максимальное количество разрешенных запросов при

# устойчивом соединении. Значение 0 устанавливает неограниченное

#количество. Для обеспечения максимальной производительности рекомендуем

# установить это число большим. # maxKeepAliveReguests 100

#

# KeepAliveTimeout: Количество секунд для ожидания следующего запроса.

#

KeepAliveTimeout 15

#

# Правила размера серверного пула. Чтобы Вы не гадали, сколько Вам нужно

# процессов для сервера, Apache динамически подстраивается к текущей

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

# обслуживания временных пиков (т.е. нескольких одновременных запросов,

# исходящих из одного браузера Netscape). #

# Делает он это при помощи периодической проверки количества

# серверов, ожидающих запросов. Если их меньше, чем minSpareServers,

# то он создает дополнительный резерв. Если больше, чем

# maxSpareServers, то он уничтожает некоторые из них.

# Эти значения, вероятно, подходят для многих сайтов #

minSpareServers 5 maxSpareServers 20

#

# Количество запускаемых серверов — должно быть умеренное

# приблизительное число. #

StartServers 8

# Предел на общее количество запускаемых серверов, т.е. предел на число

# одновременно соединяющихся клиентов - если этот предел когда-либо

# будет достигнут, клиенты будут ЗАБЛОКИРОВАНЫ, поэтому он НЕ ДОЛЖЕН

# БЫТЬ СЛИШКОМ МАЛЕНЬКИМ. Этот параметр главным образом используется

# как тормоз, чтобы необузданный сервер не потянул за собой Unix,

# который в это время начнет тормозить... #

maxClients 150

# maxRequestsPerChild: максимальное количество запросов, разрешенных

# для обработки каждому дочернему процессу перед его удалением.

# После этого дочерний процесс будет завершен, чтобы избежать

# неприятностей связанных с продолжительным использованием из-за

# изъянов Apache (а может и используемых им библиотек) . На многих

# системах этот параметр не очень нужен, но некоторые (такие как

# Solaris) действительно имеют изъяны в библиотеках. Для таких систем

# задайте значение, наподобие 10000;

# значение 0 означает "неограниченный".

#

# Внимание: Это значение не включает keepalive-запросы после .соединения.

# Например, если дочерний процесс обрабатывает начальный запрос и 10

# последующих keptalive-запросов, будет учтен только один запрос

# при анализе превышения данного предела .

#

maxRequestsPerChild 100

#

# Listen: Позволяет привязать Apache к конкретным iP-адресам

# и/или портам, в дополнение к принятым по умолчанию значениям.

# См. также команду VirtualHost.

#

#Listen 3000

#Listen 12.34.56.78:80

Listen 80

#

# bindAddress: Эту сйщию можно использовать для поддержки виртуальных

# хостов. Эта опция указывает серверу iP-адрес для прослушивания. Он

# может содержать либо "*", либо iP-адрес, либо полное квалифицированное

# имя internet-домена. См. также команду VirtualHost.

#

# bindAddress *



# Поддержка Dynamic Shared Object (DSO - Динамические

# совместные объекты)

#

# Чтобы использовать функциональность модулей, построенных как DSO,

# поместите соответствующие строчки 'Loadmodule' в этом месте, чтобы

# содержащиеся в них команды были доступны до того, как они будут

# использованы. Для дополнительной информации о механизме DSO,

# пожалуйста, прочтите файл READmE. DSO из дистрибутива Apache Д. 3 и

# запустите 'httpd -1' для получения списка уже встроенных модулей

# (они Скомпонованы статически и, таким образом, всегда доступны)

# в исполняемом модуле httpd.

# # Внимание : Порядок загрузки модулей существенен. Не меняйте

# приведенный ниже порядок без консультации со специалистом.

# Пример :

# Loadmodule foo_module libexec/mod_foo.so

#

# Loadmodule imiap_static_module modules /mod_mmap_static. so

Loadmodule vhost_alias_module modules/mod_vhost_alias.so

Loadmodule env_module modules /mod_env. so

Loadmodule conf ig_log_module modules /mod_log_config. so

Loadmodule agent_log_module modules /mod_log_agent .so

Loadmodule referer_log_module modules /mod_log_referer .so

#Loadmodule mime_magic_module modules /mod_mime_magic .so

Loadmodule mime_module modules /mod_mime. so

Loadmodule negotiation_module modules /mod_negotiation. so

Loadmodule status_module modules /mod_status. so

Loadmodule info_module modules /mod_info. so

Loadmodule includes_module modules/mod_include.so

Loadmodule autoindex_module modules/mod_autoindex.so

Loadmodule dir_module modules /mod_dir .so

Loadmodule cgi_module modules /mod_cgi .so

Loadmodule asis_module modules/mod_asis . so

Loadmodule imap_module modules /mod_imap. so

Loadmodule action_module modules /mod_actions . so

tLoadmodule speling_module modules /mod_speling. so

Loadmodule userdir_module modules /mod_userdir. so

Loadmodule alias_module modules/mod_alias .so

Loadmodule rewrite_module modules /mod_rewrite. so

Loadmodule access_module modules /mocLaccess. so

LuaJWuUule auUuuuQule modules/mod_auth.so

Loadmodule anon_auth_module modules /mocLauth_anon. so

Loadmodule db_auth_module modules /mod_auth_db. so

#Loadmodule digest module modules /mod_dige'st. so

#Loadmodule proxy_module modules /libproxy. so

#Loadmodule cern_meta_moduie modules /mod cern_meta.so

Loadmodule expires_module modules /mod_expires. so

Loadmodule headers_module modules/mod_headers.so

#Loadmodule usertrack_module modules /mod_user track. so

#LoadmnHn1e example_modul modules /mod_example. so

#Loadmodule unique_id_module modules /mod_unique_id. so

Loadmodule setenvif_module moauies/mod_secenvit.so

#Loadmodule bandwidth_module modules /mod_bandwidth . so

iLoadmodule put_module modules/mod_put.so

<if Define HAVE_PERL>

Loadmodule perl_module modules /libperl .so

</lfDefine>

<if Define HAVE_PHP>

Loadmodule php_module modules /mod_php. so

</ifDefine>

<ifDefine HAVE_PHP3>

Loadmodule php3_module modules /libphpS . so

</ifDefine>

<ifDefine HAVE_PHP4>

Loadmodule php4_module modules/ iibphp4. so

</ifDefine>

<ifDefine HAVE_DAV>

Loadmodule dav_module modules /libdav. so

</ifDefine>

<if Define HAVE_ROAmiNG>

Loadmodule roaming_module modules /mod_roaming. so

</ifDefine>

<ifDefine HAVE_SSL>

Loadmodule ssl_module modules/libssl .so

</ifDef ine>

# Реконструкция полного списка модулей из всех доступных модулей

# (статических и совместных) для обеспечения правильного порядка

# выполнения модулей.

# [ВСЯКИЙ РАЗ ПОСЛЕ ПОПРАВОК В СЕКЦИИ LOADmODULE (см. выше)

# ТАКЖЕ ОТКОРРЕКТИРУЙТЕ И ЭТУ СЕКЦИЮ]

ClearmoduleList

#Addmodule mod_mmap_static.c

Addmodule mod_vhost_alias.c

Addmodule mod__env.с

Addmodule mod_log_conf ig.c

Addmodule mod_log_agent.c

Addmodule mod_log_referer.c

#Addmodule mod_mime_magic . с

Addmodule mod_mime . с

Addmodule mod_negotiation.c

Addmodule mod_status.c

Addmodule mod_info.c

Addmodule mod_include.c

Addmodule mod_auto index . с

Addmodule mod_dir.c

Addmodule mod_cgi.c

Addmodule mod_asis.c

Addmodule mod_imap.c

Addmodule mod_actions.c

#Addmodule mod_spel ing . с

Addmodule mod_userdir . с

Addmodule mod_alias.c

Addmodule mod_rewrite .c

Addmodule mod_access . с

Addmodule mod_auth.c

Addmodule mod_auth_anon . с

Addmodule mod_auth_db . с

#Addmodule mod_digest.c

#Addmodule mod_proxy.c

#Addmodule mod_cern_meta . с

Addmodule mod_expires . с

Addmodule mod_headers . с

#Addmodule mocLuser track _e

#Addmodule mod_example.c

#Addmodule mod_unique_id . с

Addmodule mod_so.c

Addmodule mod_setenvif .c

#Addmodule mod__bandwidth . с

#Addmodule mod_put.c

< if Define HAVE_PERL>

Addmodule mod_perl.с

</ifDefine>

<ifDefine HAVE_PHP>

Addmodule mod_php.c

</ifDefine>

<ifDefine HAVE_PHP3>

Addmodule mod_php3 . с

</ifDef ine>

<if Define HAVE_PHP4>

Addmodule mod_php4.c

</ifDefine>

<if Define HAVE_DAV>

Addmodule mod_dav . с

</ifDefine>

<ifDefine HAVE_ROAmiNG>

Addmodule mod_roaming . с

</ifDef ine>

<ifDefine HAVE_SSL>

Addmodule mod_ssl . с

</ifDef ine>

# ExtendedStatus : определяет, будет ли Apache генерировать

# информацию о состоянии в полном объеме (ExtendedStatus On)

# или только базисную информацию (ExtendedStatus Off) ,

# когда вызывается обработчик "server-status". По умолчанию

# используется значение Off.

#

#ExtendedStatus On

#

### Раздел 2: 'main' конфигурация сервера

#

# Директивы этого раздела устанавливают значения, используемые

# 'main' сервером, который отвечает на любой запрос, не

# обработанный хостом <VirtualHost>.

# Эти значения также задают величины по умолчанию для любых

# контейнеров <VirtualHost>, которые вы можете

# определить позже.

#

# Все эти директивы могут возникать внутри контейнеров

# <VirtualHost>. В этом случае значения по умолчанию будут

# заменены этими величинами для виртуальных хостов.

#

#

# Если ваша директива ServerType (см. выше в разделе

# 'Global Environment') устанавливает значение "inetd",

# следующие несколько директив не оказывают никакого эффекта,

# поскольку их значения определены inetd-конфигурацией.

#

# Переходите к директиве ServerAdmin.

#

# Port: порт, который прослушивает сервер в режиме standalone.

# Если номер порта < 1023, то при загрузке httpd нужно запускать с

# привилегиями root .

# Port 80

# Чтобы запустить httpd как другого пользователя или группу

# пользователей, необходимо вначале запустить httpd как root, a

# он затем сам выполнит переключение.

#

# User/Group: Имя (или #номер) пользователя/группы, под которым

# запустить httpd.

# На SCO (ОПТ 3) используйте User nouser и Group nogroup

# Если на HPUX указать nobody, то нельзя будет использовать

# разделяемую память и выходом из положения может быть

# создание пользователя www и его использование.

#

# ПРИМЕЧАНИЕ : в некоторых системах ядро отвергает запросы на

# setgid(Group) или semctl(iPC_SET), если величина (unsigned)

# Group больше 60000;

# не используйте группу nobody на таких системах!

User apache Group apache

# ServerAdmin: Адрес, куда направлять электронную почту

# для решения проблем с сервером.

#

ServerAdmin root@localhost

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

# клиентам сервера, если оно отличается от имени, получаемого

# программой (т.е. используется "www" вместо настоящего имени хоста). #

# Примечание: Нельзя просто придумать имя хоста и надеяться, что оно

# будет работать. Имя, которое здесь определяется, должно быть

# допустимым DNS-именем для хоста. Если это не понятно -.

# проконсультируйтесь с вашим сетевым администратором.

# Если ваш хост не имеет зарегистрированного DNS-имени, # введите здесь его iP-адрес.

# Вы в любом случае получите доступ к хосту по его адресу

# (например, http://123.45.67.89/) и эта директива позволит

# выполнить переадресацию. ServerName localhost

#

# DocumentRoot: Каталог, из которого будут предоставляться документы.

# По умолчанию на все запросы файлы предоставляются из этого каталога,

# но могут использоваться символические ссылки и псевдонимы

# для указания других источников, #

DocumentRoot "/var/www/html"

#

# Каждый каталог, к которому Apache имеет доступ, может быть настроен

# с учетом того, какие сервисы и свойства разрешены и/или запрещены

# в этом каталоге (и его подкаталогах).

# Вначале установим для "default" очень ограниченный набор прав доступа.

#

<Directory />

Options followSymLinks AllowOverride None </Directory>

#

# Заметьте: начиная с этого места, необходимо конкретно разрешать

# каждое действие. Если что-то работает не так, как ожидалось,

# убедитесь, что соответствующее действие разрешено.

# Эта строчка должна содержать то же, что и элемент.DocumentRoot.

#

<Directory "/var/www/html">

# Здесь допустимы также значения "None", "All" и любые комбинации

# "indexes", "includes", "followSymLinks", "ExecCGi" и "multiViews".

# Заметьте: "multiViews" должно быть указано *явно* - "Options All"

# не устанавливает эту опцию.

Options indexes includes followSymLinks

#

# Здесь указывается, какие опции могут переопределить файлы .htaccess,

# находящиеся в каталогах. Значение может быть "All" или любой

# комбинацией "Options", "filelnfo", "AuthConfig" и "Limit".

AllowOverride None

# Указывает, кто может брать файлы на этом сервере


Order a How, deny

Allow from all

</Directory>

#

# UserDir: Имя каталога, которое добавляется к домашнему каталогу

# пользователя, если получен запрос типа ~user.

#

UserDir public_html

#

# Управление доступом к каталогам UserDir. Ниже приведен пример

# для узла, на котором каталоги объявлены доступными только для чтения.

#

#<Directory /home/*/public_html>

# AllowOverride filelnfo AuthConfig Limit

# Options multiViews indexes SymLinksifOwnermatch includesNoExec

# <Limit GET POST OPTiONS PROPfiND>

# Order allow, deny

# Allow from all

# </Limit>

# <Limit PUT DELETE PATCH PROPPATCH mKCOL COPY mOVE LOCK UNLOCK>

# Order" deny, allow

# Deny from all

# </Limit>

#< /Directory>

#

# Directorylndex: Имя или имена файлов, которые будут использоваться как

# индексные файлы HTmL. Разделяйте имена пробелами, если их несколько.

#

Directorylndex index.html index.htm index. shtml index. php index. php4

-> index . php3 index . cgi

#

# AccessfileName: Имя файла, который нужно искать в каждом каталоге

# и который содержит информацию по управлению доступом.

#

AccessfileName .htaccess

#

# Следующие строки защищают файлы .htaccess от просмотра

# Web- клиентами. Поскольку файлы .htaccess часто содержат

# сведения об авторизации, доступ закрывается из соображений

# безопасности. Закомментируйте эти строки, если хотите

# предоставить Web-клиентам возможность просмотра содержимого

# файлов .htaccess. Если вы изменили директиву AccessfileName

# выше, то внесите соответствующие изменения и здесь.

# Поскольку часто для файлов парольной защиты используются

# файлы .htpasswd, защита будет обеспечена.

#

<files - н/ч \ .ht">

Order allow, deny

Deny from all

</files>

#

# CacheNegotiatedDocs : По умолчанию Apache посылает псевдокомментарий:

# не кэшировать содержимое документов по договоренности. Это указывает

# прокси-серверу не кэшировать документы. Раскомментирование нижестоящей

# строки отменяет это действие и прокси-серверам будет разрешено

# кэширование документов.

#

# CacheNegotiatedDocs

#

# UseCanonicalName: (появилось в 1.3) Если включить эту опцию, то

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

# (URL, который ссылается на сервер, с которого идет ответ) , он будет

# использовать ServerName и Port для формирования "канонического"

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

# переданный клиентом hostname:port, если это возможно. Это также влияет

# на SERVER NAmE И SERVER PORT в CGi.

#

UseCanonicalName On

#

# TypesConfig указывает где нужно искать файл mime. types (или его аналог)

#

TypesConfig /etc /mime. types


#

# DefaultType - тип mimE по умолчанию для тех документов, тип

# которых сервер не может определить по расширению файлов.

# Если ваш сервер содержит в основном текстовые или

# HTmL-документы, следует задать значение "text/plain".

# Если содержимое в основном дцоичное, например, приложения

# или иллюстрации, можно использовать значение

# "application/ octet-stream", чтобы заблокировать попытки

# браузеров отобразить двоичные файлы как текст.

#

DefaultType text/plain

#

# mod mime magic позволяет серверу использовать различные

# особенности самого файла для определения его типа.

# Директива mimEmagicfile указывает модулю, где

# расположены предлагаемые определения..

# mod mime magic не является частью сервера по умолчанию

# (необходимо добавить его самостоятельно с помощью

# Loadmodule [см параграф DSO в разделе 'Global Environment'],

# или рекомпилировать сервер и включить mod mime_magic

# как часть конфигурации) , поэтому он заключен в контейнер

# <ifmodule>.

# Это значит, что директива mimEmagicfile будет отработана

# только если модуль является частью сервера.

#

<ifmodule mod_mime_magic . о

mimEmagicfile /usr/ share/magic

</ifmodule>

#

# HostnameLookups : Протоколировать имена клиентов или же только

# их iP-адреса т.е. www.apache.org (on) или 204.62.129.132 (off)

# По умолчанию off, так как для сети намного лучше, когда люди

# должны сознательно включать эту опцию. Вариант on приводит

# к тому, что каждый клиентский запрос порождает по крайней

# мере одно обращение к серверу имен.

#

HoetnameLookupe O££

#

# ErrorLog: Расположение файла протокола ошибок.

# Если директива ErrorLog не задана в контейнере

# <VirtualHost>, сообщения об ошибках, касающихся

# виртуального хоста, будут регистрироваться здесь.

# Если вы определили файл регистрации ошибок для

# контейнера <VirtualHost>, то сообщения об .ошибках хоста

# будут регистрироваться в этом файле, а не здесь.

#

ErrorLog /var/log/httpd/error_log

#

# Log~Level: Управляет количеством сообщений,

# записывающихся в error log.

# Перечень возможных вариантов: debug, info, notice, warn,

# error, crit, alert, emerg.

#

LogLevel warn

#

# Далее следуют команды, определяющие формат мнемонических

# имен, которые будут использоваться в команде CustomLog (см. ниже) .

#

Logformat "%h %1 %u %t \"%r\" %>s %b \ "%{Referer}i\" \"%{User-

-> Agent }i\" " combined

Logformat "%h %1 %u %t \"%r\" %>s %b" common

Logformat "%{Referer}i -> %U" referer

Logformat "% {User-agent}!" agent

#

# Расположение файла протокола доступа (Обычный Формат Протокола) .

# Если вы не определили никаких файлов протокола доступа в контейнере

# <VirtualHost>, транзакции будут регистрироваться здесь.

# Если вы определили файл регистрации для контейнера

# <VirtualHost>, то транзакции; хоста будут регистрироваться

# в этом файле, а не здесь.

#

CustomLog /var/log/httpd/access_log common

# # Если нужен файл протокола для агентов и рекомендателей -

# раскомментируйте нижестоящие команды.

#

# CustomLog /var/log/httpd/referer_log referer

# CustomLog /var/log/httpd/agent_log agent

# Чтобы использовался один общий файл для протоколирования доступа,

# агента и рекомендателя (Комбинированный Файл Протокола) можно

# использовать следующую команду.

#

# CustomLog /var/log/httpd/access_log combined

#

# Можно добавить строку, содержащую версию сервера

# и имя виртуального хоста для страниц, сгенерированных

# сервером (сообщения об ошибках,, списки ЕТР-каталогов,

# вывод mod status и mod info и т.п.,

# но не документы, сгенерированные CGi) .

# Задайте значение "Email", чтобы также включить ссылку

# mailto: на ServerAdmin.

# Задайте одно из значений: On | Off | Email

#

ServerSignature On

#

# Aliases: Укажите здесь столько псевдонимов, сколько' необходимо

# (без ограничения) . Формат следующий: Alias fakename realname

#

# Заметьте: если завершить фиктивное имя fakename символом "/",

# то сервер требует его присутствия в URL. Так, "/icons" не замещается

# в этом примере.

#

Alias /icons/ "/var/www/ icons/"

<Directory " /var/www/ icons ">

Options indexes multiViews

AllowOverride None

Order a 1 1 ow , deny

Allow from all

</Directory>

#

# ScriptAlias: Указывает каталоги, в которых находятся сценарии сервера.

# ScriptAliases по сути представляют собой то же самое, что и Aliases,

# кроме документов из каталога realname, которые интерпретируются

# как приложения и запускаются сервером по запросу вместо отправки

# клиенту в качестве документов .

# Правила в отношении "/"/ описанные выше для Alias,

# справедливы и для директив ScriptAlias .

#

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/ "

#

# "/var/www/cgi-bin" следует заменить на CGi-каталог

# ScriptAliased, если он существует и сконфигурирован.

#

<Directory "/var/www/cgi-bin">

AllowOverride None

Options ExecCGi

Order allow, deny

Allow from all

</Directory>

# Redirect позволяет указать клиентам те документы, которые раньше

# были в вашем пространстве имен, а теперь отсутствуют. Это позволяет

# вам сообщить клиентам, где можно найти перемещенный документ.

# Формат: Redirect old-URi new-URL

#

#

# Директивы, управляющие отображением листингов,

# сгенерированных сервером.

#

#

# fancy indexing указывает на тип индексирования .каталогов -

# узорчатый или стандартный.

#

indexOptions fancylndexing

#

# Addlcon указывает серверу какие значки показывать для

# различных файлов или расширений файлов. Они отображаются

# только для проиндексированных fancylndexing каталогов.

#

AddlconbyEncoding (CmP, /icons /compressed. gif) x-compress x-gzip

AddlconbyType (TXT, /icons /text. gif) text/*

AddlconbyType (imG, /icons /irnage2 .gif ) image/*

AddlconbyType ( SND , / icons / sound2 .gif) audio / *

AddlconbyType (ViD, /icons /movie.gif) video/*

Addlcon /icons /binary. gif .bin .exe

Addlcon / icons /binhex. 'gif .hqx

Addlcon /icons /tar. gif .tar

Addlcon /icons /world2 .gif .wrl .wrl.gz .vrml .vrm .iv

Addlcon /icons /compressed. gif .z .z .tgz .gz .zip

Addlcon /icons /a. gif .ps .ai .eps

Addlcon /icons /layout. gif .html .shtml .htm .pdf

Addlcon /icons /text. gif . txt

Addlcon /icons/c.gif .с

Addlcon /icons/p.gif .pi .py

Addlcon / icons /f. gif .for

Addlcon /icons/dvi.gif .dvi

Addlcon /icons /uuencoded.gif .uu

Addlcon /icons/script. gif .conf .sh . shar .csh . ksh .tcl

Addlcon / icons /tex. gif .tex

Addlcon /icons /bomb. gif core

Addlcon /icons /back. gif ..

Addlcon /icons/hand. right. gif READmE

Addlcon /icons /folder. gif ^^DiRECTORY^^

Addlcon /icons /blank. gif ^^bLANKiCON^^

#

# Defaultlcon указывает, какой значок .использовать для файлов,

# для которых он явно не указан.

#

Defaultlcon /icons/unknown. gif

# AddDescription позволяет разместить краткое описание после.

# имени файла в генерируемых сервером индексах.

# Формат: AddDescription "описание" ИмяФайла

#

# AddDescription "GZiP compressed document" . gz

# AddDescription "tar archive" .tar

# AddDescription "GZiP compressed tar archive" .tgz

#

#

# ReadmeName - имя READmE-файла, которое сервер будет искать

# по умолчанию, чтобы добавить к списку каталогов.

#

# HeaderName - имя файла, которое сервер будет искать,

# чтобы добавить к началу индекса каталогов.

#

# Сервер сначала будет искать файл name.html и учтет его,

# если найдет. Если этот файл не обнаружится, то будет

# выполнен поиск файла name . txt . Если сервер найдет

# этот файл, то включит его как текстовый файл.

#

ReadmeName READmE

HeaderName HEADER

#

# indexlgnore - список имен файлов, игнорируемых

# при индексировании каталога. Разрешается использование

# символов подстановки в соответствии с синтаксисом оболочки.

#

indexlgnore .??* *~ *# HEADER* READmE* RCS CVS *,v *,t

#

# AddEncoding позволяет указать некоторым браузерам

# (mosaic/X 2.1+) распаковывать информация? на лету.

# Примечание : не все браузеры это поддерживают .

# Несмотря на схожесть названий, следующие директивы Add*

# не оказывают влияния на директивы настройки fancyindexing

# приведенные выше. #

AddEncoding x-compress Z AddEncoding x-gzip gz

#

# AddLanguage позволяет указать язык, используемый в документе., Затем

# можно выполнить согласование содержимого, чтобы вернуть браузеру файл

# использованием понимаемого им языка. Заметьте: суффикс не обязан быт

# таким же, как и ключевое слово языка - те, кто имеет документы на

# польском, для которого стандартный сетевой код pi, могут использоват

# "AddLanguage p1.ро" во избежание двусмысленности с таким же

# суффиксом для сценариев perl. #

AdSLanguage en .en

AddLanguage fr .fr

AddLanguage de .de

AddLanguage da .da

AddLanguage el .el

AddLanguage it .it

#

# LanguagePriority позволяет назначить приоритет для некоторых

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

# достичь единого мнения.

# Просто перечислите языки в убывающем порядке предпочтения. #

LanguagePriority en fr de

#

# AddType позволяет откорректировать mime.types без их реальной

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

# для некоторых файлов.

# Далее приведены директивы для РНР4 (конфликт с PHP/fi, ниже): <ifmodule mod_php4.c>

AddType application/x-httpd-php .php4 .php3 .phtml .php

AddType application/x-httpd-php-source .phps </ifmodule>

# Далее приведены директивы для РНРЗ: <ifmodule mod_php3.c>

AddType application/x-httpd-php3 .php3

AddType application/x-httpd-php3-source .phps </ifmodule>

# Далее приведены директивы для PHP/fi (PHP2):

<ifmodule mod_php.c>

AddType application/x-httpd-php .phtml </ifmodule>

AddType application/x-tar .tgz

# AddHandler позволяет назначить некоторые расширения файлов

# "обработчикам", действия которых не связанны с типом файлов.

# Их можно встроить в сервер либо добавить командой Action (см. ниже). #

# Если вы хотите использовать дополнения на сервере, или CGi вне

# каталогов ScriptAliased, раскомментируйте следующие строки. #

# Для использования сценариев CGi: #

AddHandler cgi-script .cgi #

# Для использования файлов HTmL, анализируемых сервером: #

AddType text/html .shtml AddHandler server-parsed .shtml

#

# Раскомментируйте следующую строку, чтобы разрешить

# использовать свойство Apache "send-asis HTTP file" #

#AddHandler send-as-is asis

#

# Для использования файлов рисунков, анализируемых сервером: #

AddHandler imap-file map #

# Чтобы разрешить использование плат типов: #

#AddHandler type-map var

# Action позволяет указать типы источников, которые будут запускать

# сценарий при указании соответствующего файла. Это позволяет

# избежать использования повторяющихся URL в часто используемых

# процессорах CGi-файлов.

# Формат: Action media/type /cgi-script/location

i Формат: Action handler-name /cgi-script/location #

# metaDir: указывает имя каталога, в котором Apache может

# найти метафайлы. Эти файлы содержат дополнительные HTTP-заголовки,

# включаемые в документы при отправке.

# #metaDir .web

#

# metaSuffix: указывает суффикс имен файлов, содержащих метаинформацию. #

# metaSuffix .meta

#

# Настраиваемые ответные сообщения об ошибках (стиль Apache)

# имеется три варианта #

# 1) обычный текст

# ErrorDocument 500 "The server made a boo boo.

# N.b. Символ (") является признаком текста и не отображается


# 2) локальное перенаправление

#ErrorDocument 404 /missing.html

# для перенаправления на локальный URL /missing.html

#ErrorDocument 404 /cgi-bin/missing_handler .pi

# N.b. Можно перенаправлять на сценарий или документ,

# используя включения со стороны сервера.

#

# 3) внешнее перенаправление

#ErrorDocument 402 http : / /some . other_server . com/subscription_inf о . html

# N.b. Многие переменные окружения, связанные

# с исходным запросом, в таком сценарии будут недоступны.

#

# Следующие команды модифицируют обычную процедуру ответа HTTP.

# Первая команда запрещает keepalive для Netscape 2.x и браузеров,

# которые представляются как Netscape 2.x. Известны проблемы,

# связанные с этим. Вторая команда - для microsoft internet

# Explorer 4.0Ь2, которая имеет неправильную реализацию НТТР/1.1

# и неправильно поддерживает keepalive, когда эта опция

# используется в ответах 301 и 302 (перенаправление) .

browsermatch "mozilla/2" nokeepalive

browsermatch "mSiE 4\.0b2; " nokeepalive downgrade- 1.0 force-response- 1. 0

#

# Следующие команды запрещают ответы HTTP/1.1 браузерам,

# которые нарушают спецификацию НТТР/1 отсутствием понимания самых

# простых ответов 1.1.

#

browsermatch "RealPlayer 4\.0" force-response-1 .0

browsermatch "Java/l\.0" force-response-1 . 0

browsermatch "ODK/iN.O" force-response-1 .0

# Если модуль perl установлен, то следующие директивы выполнятся.

<ifmodule mod_perl.c>

Alias /perl/ /var/www/perl/

<Location /perl>

SetHandler perl-script

PerlHandler Apache: : Registry

Options +ExecCGi

</Location>

</ifmodule>

#

# Разрешает http-размещение (наподобие публикации в Netscape Gold) .

# Используйте htpasswd для генерации /etc/httpd/conf/passwd.

# Необходимо раскомментировать эти две строки и в начале этого файла:

#

#Loadmodule put_module modules /mod_put. so

#Addmodule mod_put.c

#

#Alias /upload /tmp

#<Location /upload>

# EnablePut On

# AuthType basic

# AuthName Temporary

# AuthUserfile /etc/httpd/conf/passwd

# EnableDelete Off

# umask 007

# <bimit PUT>

# require valid-user

# </Limit>

#</Location>

#

# Позволяет серверу возвращать отчет, находящийся по URL

# http://servername/server-status

# Для включения этого режима следует изменить

# ".your_domain.com" на ваш домен.

#

#<Location /server-status>

# SetHandler server-status

# Order deny, allow

# Deny from all

# Allow from .your_domain.com

#</Location>

# Позволяет отчеты о конфигурации удаленного сервера

# с URL http: //servername/server-info

# (необходимо, чтобы mod info. с был загружен)

# Для включения этого .режима следует изменить

# ".your_domain.com" на ваш домен.

#

#<bocation /server- info>

# SetHandler server- info

# Order deny, allow

# Deny from all

# Allow from .your_dpmain.com

#</Location>

# Разрешает доступ к документам локального компьютера с localhost

Alias /doc/ /usr/share/doc/

<Location /doo

order deny, allow

deny from all

allow from localhost

Options indexes followSymLinks

</Location>

# Имеются сообщения, что некоторые люди пытаются незаконно использовать

# старую ошибку со времен версии 1.1. Эта ошибка была в сценарии CGi,

# поставлявшемся как часть Apache. Сняв комментарии с этих строк, можно

# перенаправить эти атаки на протоколирующий сценарий, который находится

# на phf.apache.org. Или можно самостоятельно записывать их,

# используя сценарий support/phf abuse log.cgi.

#

#<Location /cgi-bin/phf*>

# Deny from all

### Раздел З: Виртуальные хосты

# VirtualHost: Если вы хотите поддерживать несколько

# доменов/имен хостов на вашем компьютере, можете задать

# для них контейнеры VirtualHost. См. документацию по адресу

# <URL: http://www.apache.org/docs/vhosts/ >

# для ознакомления с подробностями перед тем, как

# приступить к установке виртуальных хостов.

# Можно использовать в командной строке опцию '-S', чтобы

# проверить конфигурацию вашего виртуального хоста.

#

# Если вы хотите использовать именованные виртуальные

# хосты, необходимо определить, по крайней мере, один

# iP-адрес (и номер порта) для них. #

#NameVirtualHost 12.34.56.78:80 #NameVirtualHost 12.34.56.78

#

# Пример VirtualHost:

# Практически любая директива Apache может вставляться в

# контейнер VirtualHost .

#

# <VirtualHos t ip . address . of . host . some_domain . com>

# ServerAdmin webmasterShost .some_domain.com

# DocumentRoot /www/docs/host . some_domain. com

# ServerName host . some_domain . com

# ErrorLog logs/host .some_domain.com-error_log

# CustomLog logs /host. some_domain.com-access_log common

#</VirtualHost>

#<VirtualHost _default_:*>

#</VirtualHost>

<if Define HAVE_SSL>

##

## SSL Virtual Host Context

##

# По умолчанию Apache только слушает порт 80.

# Определение виртуального сервера (см. ниже) не вызывает

# автоматического прослушивания порта виртуального сервера.

Listen 443

<VirtualHost _default_:443>

# Общая установка виртуального хоста

DocumentRoot "/var/www/html"

# SSL Engine ключ:

# Разрешение/запрет SSL для этого виртуального хоста.

SSLEngine on

# SSL шифры:

# Список шифров, которые клиент может использовать.

# См. в документе mod ssl полный список шифров.

#SSLCipherSuite ALL: !ADH:RC4+RSA:+HiGH: +mEDiUm: +LOW: +SSLv2 : +EXP: +eNULL

# Сертификат сервера:

# Адресует SSLCertificatefile на РЕМ-кодированный сертификат.

# Если сертификат зашифрован, появится запрос пароля.

# Обратите внимание: kill -HUP- вызовет повторный запрос

# пароля. Тестовый сертификат можно сгенерировать с помощью

# `make certificate' в ходе построения. Если вы используете и

# RSA и DSA сертификаты, то оба можно конфигурировать одновременно

# (чтобы также разрешить использование шифров DSA и т.д.) .

SSLCertificatefile /etc/httpd/conf /ssl .crt/server ,crt

#SSLCertif icatefile /etc/httpd/conf /ssl . crt/server-dsa. crt

# Частный ключ сервера:

# Если ключ не объединен с сертификатом, используйте эту директиву,

# чтобы указать файл ключа. Если вы используете и RSA и DSA

# сертификаты, то оба можно конфигурировать одновременно

# (чтобы также разрешить использование шифров DSA и т.д.) .

SSLCertif icateKeyfile /etc/httpd/conf /ssl . key/server . key

#SSLCertificateKeyfile /etc/httpd/conf /ssl. key/server-dsa. key


# Цепочка сертификатов сервера :

# Адресует SSLCertificateChainfile на файл, содержащий

# соединение РЕМ- кодированных СА- сертификатов. Он

# формирует цепочку сертификатов для серверного сертификата .

# Альтернатива: указанный файл может быть тем же, что и файл

# SSLCertificatefile, если СА-сертификаты, для удобства,

# непосредственно связаны с серверным сертификатом.

#SSLCertificateChainfile /etc/httpd/conf /ssl . crt/ca.crt

# Авторизация сертификата (СА) :

# Задайте пути верификации сертификата СА, т.е. место где

# можно найти сертификаты СА для аутентификации клиентов или

# один большой файл, содержащий все сертификаты (файл должен

# быть РЕМ-кодированным) .

# Внимание : Внутри SSLCACertificatePath следует

# хешировать ссылки на файлы сертификатов. Пользуйтесь

# makefile для обновления хешированных ссылок после

# внесения изменений.

#SSLCACertificatePath /etc/httpd/conf /ssl. crt

#SSLCACertificatefile /etc/httpd/conf /ssl. crt/ca-bundle. crt

# Список отмененных сертификатов (CRL) :

# Задайте путь отмененных СА, чтобы можно было найти список

# отмененных СА для аутентификации клиентов или один большой файл,

# содержащий все сертификаты (файл должен быть РЕМ-кодированным) .

# Внимание : Внутри SSLCARevocationPath следует

# хешировать ссылки на файлы сертификатов. Пользуйтесь

# makefile для обновления хешированных ссылок после

# внесения изменений.

#SSLCARevocationPath /etc/httpd/conf /ssl . crl

#SSLCARevocationfile /etc/httpd/conf /ssl . crl/ca-bundle. crl

# Аутентификация клиента (тип) :

# Тип и глубина верификации сертификатов клиентов. Типы:

# none, optional, require и optional no ca. Глубина

# задается как номер, который определяет, насколько глубоко

# следует проверять цепочку издателя сертификата,

# чтобы убедиться в негодности сертификата.

#SSLVerifyClient require

#SSLVerifyDepth 10

# Контроль доступа:

# Посредством SSLRequire можно управлять доступом к каталогам,

# задавая произвольные булевы выражения, содержащие обращения

# к серверным переменным. Синтаксис выражений представляет собой

# нечто среднее между С и Perl. Подробности см. в файле mod ssl.

#<Location />

#SSLReqUire ( %{SSL_CiPHER) ! ~ m/ n (ЕХР |NULL) -/ \

# and %{SSL_CLiENT_S_DN_O} eq "Snake Oil, Ltd." \

# and %{SSL_CLiENT_S_DN_OU} in {"Staff", "CA", "Dev"} \

# and %{TimE_WDAY) >= 1 and %{TimE_WDAY} <= 5 \

# and %{TimE_HOUR} >= 8 and %{TimE_HOUR} <= 20 ) \

tt or %{REmOTE_ADDR) =~ m/ n !92\ .76\ . 162\ . [0-9] +$/

#</Location>

# Опции SSL Engine:

# Установка различных опций SSL engine.

# о fakebasicAuth:

# Трансляция клиента Х.509 в basic Authorisation.

# Это значит, что для контроля доступа могут

# использоваться стандартные методы Auth/DbmAuth.

# Имя пользователя представляет собой однострочную версию

# клиентского сертификата Х.509.

# Обратите внимание, что от пользователя не требуется

# пароль. Каждый ввод в пользовательском файле требует

# пароля: ~xxj31ZmTZzkVA' .

# о ExportCertData :

# Экспортируются две дополнительных переменных:

# SSL CLiENT CERT и SSL_SERVER_CERT . Они

# содержат РЕМ-кодированные сертификаты сервера

# (они существуют всегда) и клиента (существуют

§ только, если используется аутентификация клиента) .

# Это можно использовать для импорта сертификатов

# в CGi- сценарии.

# о StdEnvVarc:

# Экспортируются V SSL *' переменные окружения,

# относящиеся к стандартным SSL/TLS.

# По умолчанию это экспортирование заблокировано из

# соображений производительности, поскольку операция

# извлечения относится к достаточно дорогим, и бесполезна

# для обслуживания статического контента. Поэтому

# разрешение выдается обычно только для CGi- и

# SSi-запросов.

# о CompatEnvVars :

# Экспортируются устаревшие переменные окружения

# для совместимости со старыми версиями Apache-SSL 1.x,

# mod ssl 2.0.x, Sioux 1.0 и Stronghold 2.x. Используйте

# для совместимости с существующими CGi-сценариями.

# о StrictRequire:

# Запрещается доступ, когда применяется "SSLRequireSSL"

f или "SSLRequire", даже в ситуации "Satisfy any",

# т.е. когда применяется эта опция, доступ запрещен

# и никакой другой модуль изменить этого не может..

# OptRenegotiate:

# Разрешает оптимизированную обработку SSL-соединения

# когда SSL-директивы используются в контексте

# отдельного каталога.

tSSLOptions +fakebasicAuth +ExportCertData +CompatEnvVars +StrictRequire

<files ~ "\. (cgi|shtml)$">

SSLOptions +StdEnvVars

</files>

<Directory "/var/www/cgi-bin">

SSLOptions +StdEnvVars

</Directory>

# Примечание: Большинство проблем взлома клиентов

# связаны с возможностями подтверждения активности

# HTTP (keepalive) , поэтому следует запретить keepalive

# для этих клиентов. Используйте для этого переменную

# "nokeepalive".

SetEnvif User-Agent ".*mSiE.*" nokeepalive ssl-unclean-shutdown

# Протокол для каждого сервера:

# Место хранения пользовательского SSL файла протокола,

# Используйте эту опцию, если нужен компактный файл

# протокола SSL (без ошибок) на виртуальном хосте.

CustomLog /var/log/httpd/ssl_request_log \

"%t %h %{SSL_PROTOCOL}x %{SSL_CiPHER}x \"%r\" %b"

</VirtualHost>

</ifDefine>

Заметьте: этот файл содержит и комментарии, и реальные команды конфигурирования. Комментарии начинаются с символа диеза (#). Команды состоят из имени команды, за которым следует параметр.

В файле httpd.conf три раздела: Global Environment, main Server Configuration и Virtual Hosts. Рассмотрим каждый из них подробно.