Иллюстрированный самоучитель по Linux Red Hat 7.1

Конфигурационный файл 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. Рассмотрим каждый из них подробно.


Содержание раздела