16.11. Пример файла httpd.conf
16.11. Пример файла httpd.conf
В этом параграфе приведен пример стандартной конфигурации сервера Apache. Каждому блоку листинга 16.15 сопутствуют комментарии, которые помогут вам разобраться с различными настройками сервера.
Листинг 16.15. Пример файла httpd.conf
##
## httpd.conf -- файл конфигурации сервера HTTP Apache
##
# ----------------------------------------------------
# Установите имя сервера
ServerName www.dhsilabs.com
ResourceConfig /dev/null
AccessConfig /dev/null
# Поддержка динамических разделяемых объектов (Dynamic
# Shared Object -- DSO)
# Для более подробной информации о DSO прочтите файл
# README.DSO,
# входящий в дистрибутив Apache.
# Модуль расширяет возможности сервера Apache,
# добавляет в его состав новые функции.
# Подключить модуль можно так
# LoadModule foo_module libexec/mod_foo.so
# Вы можете найти документацию по модулям в файле
# "/var/www/manual/mod"
#LoadModule mmap_static_module modules/mod_mmap_static.so
LoadModule env_module modules/mod_env.so
### The first module activates buffered logs.
# Первый модуль обеспечивает протоколирование.
# Он запишет информацию
# в протокол access_log, когда буфер объемом 4К
# переполнится.
#LoadModule config_buffered_log_module modules/mod_log_config_buffered.so
LoadModule config_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_infо.so
# Вы должны выбрать директиву mod_include
# или mod_include_xssi,
# но не обе одновременно! Директива mod_include более
# безопасна, но xssi содержит больше функций.
LoadModule includes_module modules/mod_include.so
#LoadModule includes_module modules/mod_include_xssi.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
#LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule proxy_module modules/libproxy.so
LoadModule alias_module modules/mod_alias.so
# Модуль mod_jserv должен быть объявлен до mod_rewrite.
<IfDefine HAVE_JSERV>
LoadModule jserv_module modules/mod_jserv.so
</IfDefine>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule anon_auth_module modules/mod_auth_anon.so
#LoadModule dbm_auth_module modules/mod_auth_dbm.so
#LoadModule db_auth_module modules/mod_auth_db.so
LoadModule digest_module modules/mod_digest.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule example_module modules/mod_example.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
# В полном списке модулей должны быть перечислены все
# доступные модули (статические или разделяемые)
# в правильном порядке выполнения.
ClearModuleList
#AddModule mod_mmap_static.с
#AddModule mod_php.c
#AddModule mod_php3.c
#AddModule mod_php4.c
#AddModule mod_perl.c
#LoadModule php_module modules/mod_php.so
#LoadModule php3_module modules/mod_php4.so
#LoadModule php4_module modules/mod_php4.so
AddModule mod_env.c
AddModule mod_log_config.с
#AddModule mod_log_config_buffered.с
AddModule mod_log_agent.с
AddModule mod_log_referer.с
#AddModule mod_mime_magic.с
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.с
#AddModule mod_include_xssi.с
AddModule mod_autoindex.с
AddModule mod_dir.c
AddModule mod_cgi.с
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.с
#AddModule mod_speling.с
AddModule mod_userdir.с
AddModule mod_proxy.с
AddModule mod_alias.с
# Модуль mod_jserv должен быть объявлен до mod_rewrite.
<IfDefine HAVE_JSERV>
AddModule mod_jserv.c
</IfDefine>
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.с
#AddModule mod_auth_dbm.с
#AddModule mod_auth_db.c
AddModule mod_digest.c
#AddModule mod_cern_meta.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_usertrack.c
#AddModule mod_example.c
#AddModule mod_unique_id.c
AddModule mod_so.с
AddModule mod_setenvif.с
# ----------- Name Space and Server Settings ---------
# Настройки пространства имен и сервера
# В этом разделе вы определяете, какие имена будут видеть
# пользователи вашего HTTP-сервера. Этот файл также
# определяет настройки сервера,
# которые раньше содержались в отдельном файле srm.conf.
# Теперь этот файл входит в состав httpd.conf
# Директива DocumentRoot определяет местонахождение
# корневого каталога документов вашего сервера.
DocumentRoot /var/www/html
# Директива UserDir задает названия подкаталога в домашнем
# каталоге пользователя, из которого берутся документы в
# том случае, когда вы активизируете возможность
# использования пользовательских каталогов.
UserDir public_html
# Директива DirectoryIndex позволяет задать название
# документа, который будет
# возвращен по запросу, который не содержит имя документа.
DirectoryIndex index.html index.php index.htm index.shtml index.cgi Default.htm default.htm index.php3
# Директива FancyIndexing определяет оформление
# каталога - стандартное или индексируемое.
FancyIndexing on
# Директивы AddIcon* указывают серверу, какие пиктограммы
# использовать для показа различных типов файлов
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text .gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/а.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.glf .pi .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# Директива DefaultIcon определяет пиктограмму
# по умолчанию.
DefaultIcon /icons/unknown.gif
# Директива AddDescription задает описание файла
# Формат: AddDescription "описание" filename
# Директива ReadmeName определяет имя файла README
# по умолчанию
# Формат: ReadmeName name
ReadmeName README
HeaderName HEADER
# Директива IndexIgnore определяет набор файлов, которые
# будут проигнорированы при индексировании
# Формат: IndexIgnore name1 name2,...
IndexIgnore .??* *# HEADER* README* RCS
# Директива AccessFileName определяет имя файла, содержащего
# директивы управления доступом
AccessFileName .htaccess
# Директива TypesConfig задает местонахождение
# файла mime.types
TypesConfig /etc/httpd/conf/apache-mime.types
# С помощью директивы DefaultType можно указать
# MIME-тип по умолчанию для документов, тип которых
# сервер определить не может
DefaultType text/plain
# Директива AddEncoding разрешает браузеру распаковывать
# информацию "на лету"
AddEncoding x-compress Z
AddEncoding x-gzip gz
# AddLanguage разрешает определять язык документа
AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage da .da AddLanguage el .el
AddLanguage it .it
# Директива LanguagePriority определяет приоритет языков
LanguagePriority en fr de
# Директива Redirect позволяет перенаправить клиента
# на другой URL. Вы можете перенаправить клиента
# на другой узел или на URL, который находится в вашем
# пространстве имен, то есть на документ,
# который находится в одном из подкаталогов каталога
# DocumentRoot. Вы не можете, например, перенаправить
# клиента к каталогу /etc, потому что он не
#находится в вашем пространстве имен.
# URL - это идентификатор ресурса, поэтому вы должны
# его указывать в виде
# протокол://адрес.домен, например, http://www.linux.ru.
# Если вы укажете просто каталог, например, /images, этот
# каталог должен быть подкаталогом каталога DocumentRoot,
# а не корневого каталога вашей основной файловой
# системы. Формат: Redirect несуществующий_url url
# С помощью директивы Alias можно предоставить доступ
# не только к файлам, находящимся в каталоге, указанном
# директивой DocumentRoot, и его подкаталогах, но и в
# других каталогах. Формат:
# Alias несуществующее_имя нормальное_имя
Alias /icons/ /var/www/icons/
# ScriptAlias определяет расположение каталога сценариев CGI
# Формат: ScriptAlias подставное_имя настоящее_имя
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
ScriptAlias /protected-cgi-bin/ /var/www/protected-cgi-bin/
# С помощью директивы AddType можно добавить новый
# тип MIME, который не указан в файле apache-mime.types.
# Формат: AddType type/subtype ext1
# Обычно для модуля PHP4 (он не является частью Apache)
# директива AddType используется так:
AddType application/x-httpd-php4 .php3 .phtml .php .php4
# AddType application/x-httpd-php3-source .phps
# Для PHP/FI (PHP2):
# AddType application/x-httpd-php .phtml
# ScriptAlias /_php/ /usr/bin/php
# Action application/x-httpd-php /usr/bin/php
# Action application/x-httpd-php3 /usr/bin/php
# Action application/x-httpd-php4 .
# Директива AddHandler позволяет сопоставить
# определенному типу MIME какой-нибудь обработчик.
# Формат: AddHandler action-name ext1
# Для использования сценариев CGI:
AddHandler cgi-script .cgi
# Для использования генерируемых сервером файлов HTML
AddType text/html .shtml
AddHandler server-parsed .shtml
# Раскомментируйте ниже расположенную строку,
# чтобы включить функцию
#Apache "отправь-как-есть" (send-as-is)
#AddHandler send-as-is asis
# Если вы хотите использовать карты изображений:
AddHandler imap-file map
# Для включения карт типов используйте:
#AddHandler type-map var
# С помощью директивы Action можно определить
# какое-нибудь действие для обработчика. Например, вы
# можете запустить какую-нибудь программу
# для обработки файла данного типа.
# Формат: Action media/type /cgi-script/location
# Формат: Action handler-name /cgi-script/location
# Директива MetaDir определяет имя каталога, в котором
# сервер Apache может найти информационные файлы meta.
# Эти файлы содержат дополнительные заголовки HTTP,
# которые будут добавлены к документу
# перед его передачей клиенту.
#MetaDir .web
# Директива MetaSuffix определяет имя суффикса файла,
# который содержит
# meta-тэги.
#MetaSuffix .meta
# Здесь можно определить сообщения об ошибках.
# Это можно сделать тремя способами:
# 1) обыкновенный текст. Символ "кавычка" обозначает текст
# и клиенту не посылается
#ErrorDocument 500 "Ошибка сервера.
#
# 2) локальное перенаправление на документ или сценарий
#ErrorDocument 404 /missing.html
#ErrorDocument 404 /cgi-bin/missing_handler.pl
#
# 3) внешнее перенаправление
#ErrorDocument 402 http://some.other_server.com/
#subscription_info.html
#
#Модуль mod_mime_magic позволяет серверу использовать
#различные подсказки из файла для определения его типа.
#MimeMagicFile /etc/httpd/conf/magic
#Следующие директивы необходимы для браузеров Netscape 2.x и
#Internet Explorer 4.0b2
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0
# Следующие директивы отключают ответы HTTP/1.1 для браузеров,
# которые не поддерживают протокол HTTP/1.1
BrowserMatch "RealPlayer 4.0" force-response-1.0
BrowserMatch "Java/1.0" force-response-1.0
BrowserMatch "JDK/1.0" force-response-1.0
# ------------------ Настройки доступа -----------------------
# В этом разделе определяются настройки сервера,
# которые управляют доступом к серверу. Раньше эти
# настройки находились в файле access.conf.
# Каждый каталог, к которому Apache может получить
# доступ, может быть сконфигурирован определенным образом.
# Можно запретить выполнение некоторых операций, доступ
# определенных пользователей или узлов сети.
# Установки доступа распространяются на весь каталог
# и на все его подкаталоги.
# Прежде всего конфигурируем корневой каталог
# для установки полномочий доступа.
<Directory />
Options Indexes Includes FollowSymLinks
AllowOverride None
</Directory>
<Directory /home>
# Здесь должны быть определены директивы "Includes",
# "FollowSymLinks", "ExecCGI", "MultiViews" или любая
# комбинация "Indexes"
Options Indexes Includes FollowSymLinks
AllowOverride All
# Разрешает доступ всем
order allow,deny
allow from all
</Directory>
# Каталоги /var/www/cgi-bin и /var/www/protected-cgi-bin
# должны быть определены с помощью директивы ScriptAliased
<Directory /var/www/cgi-bin>
AllowOverride All
Options ExecCGI
</Directory>
<Directory /var/www/protected-cgi-bin>
order deny,allow
deny from all
allow from localhost
#allow from .your_domain.com
AllowOverride None
Options ExecCGI
</Directory>
# Разрешает отчеты о состоянии сервера
<Location /server-status>
SetHandler server-status
order deny,allow
deny from all
allow from localhost, 127.0.0.1
# Установите здесь имя вашего домена
# allow from .your_domain.com
</Location>
# Разрешает доступ к файлам документации для локальной машины.
Alias /doc /usr/share/doc
<Directory /usr/share/doc>
order deny,allow
deny from all
allow from localhost, 127.0.0.1
# allow from .your_domain.com
Options Indexes
FollowSymLinks
</Directory>
# ---------------Конфигурация сервера-------------------
# Тип сервера: inetd или standalone.
ServerType standalone
# Если вы используете тип inetd, перейдите
# к директиве "ServerAdmin"
# Директива Port — только для standalone-сервера.
# Если вы хотите запустить
# сервер Apache с использованием этого или любого
# другого порта, номер
# которого меньше 1024, вы должны обладать правами
# суперпользователя. Но
# даже если у вас нет таких прав, вы можете запустить
# сервер для работы с портом, номер которого превышает
# значение 1024. Обычно используется
# номер 8080 или 8000.
Port 80
# Сервер Apache ведет журнал доступа других компьютеров.
# Если вы включите следующую опцию, то в журнал будет
# записано доменное имя компьютера-клиента. Если эта
# опция выключена, то в журнал будет записан IP-адрес
# клиента. Включение данной опции замедляет работу
# сервера, так как ему требуется дополнительное время
# на ожидание ответа от сервера DNS.
HostnameLookups off
# Директивы User и Group определяют идентификаторы
# пользователя и группы, от имени которых запускается
# сервер в автономном режиме. Можно использовать как
# регистрационные имена, так и UID. По умолчанию
# используется имя пользователя nobody или apache. Из
# соображений безопасности не рекомендуется изменять
# это значение и присваивать имя реального пользователя.
User apache
Group apache
# Директива ServerAdmin задает электронный адрес веб-
# мастера вашего веб-узла. В случае возникновения ошибок
# именно по этому адресу будет отправлено сообщение.
ServerAdmin root@localhost
# В директиве ServerRoot указывается местонахождение
# файлов конфигурации сервера Apache. По умолчанию
# используется каталог /etc/httpd.
ServerRoot /etc/httpd
# Следующая директива используется для компьютеров,
# которые имеют несколько IP-адресов. Обычно данная
# директива используется для конфигурирования
# виртуальных узлов.
#BindAddress *
# Прослушивать порт 80
Listen 80
# Директивы ErrorLog и TransferLog определяют расположение
# журналов сервера Apache. Обычно используется каталог
# /etc/httpd/logs, который является ссылкой на каталог
# /var/log/httpd или на любой другой.
ErrorLog logs/error_log
# LogLevel: устанавливает уровень протоколирования.
# Протоколируются предупреждающие сообщения сервера (warn)
# и ошибки. Если вы хотите протоколировать только ошибки,
# установите error
LogLevel warn
# Определяет формат файлов протокола, то есть информацию,
# которая будет протоколироваться. Обычно изменять эти
# значения не нужно.
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer)i"
"%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer)i -> %U" referer
LogFormat "%{User-agent)i" agent
# Можно определить тип протокола
# Если вы хотите протоколировать общую информацию
#CustomLog logs/access_log common
# Если вы хотите протоколировать referer
#CustomLog logs/referer_log referer
# Если вы хотите протоколировать название пользовательских
# агентов (браузеров)
#CustomLog logs/agent_log agent
# По умолчанию используется комбинированный тип
# протоколирования, то есть
# будет протоколироваться вся информация
CustomLog logs/access_log combined
# С помощью директивы PidFile указывается имя файла, в
# котором исходный
# процесс сервера будет регистрироваться.
PidFile /var/run/httpd.pid
# ScoreBoardFile: Этот файл используется для сохранения
# внутренней информации процесса сервера.
ScoreBoardFile /etc/httpd/httpd.scoreboard
# Директива LockFile определяет файл блокировки, который
# используется сервером. Сервер должен быть скомпилирован
# с опцией
# USE_FCNTL_SERIALIZED_ACCEPT или
# USE_FLOCK_SERIALIZED_ACCEPT. Файл блокировки должен быть
# сохранен НА ЛОКАЛЬНОМ ДИСКЕ.
#
LockFile /etc/httpd /httpd.lock
ServerName new.host.name
# Директива UseCanonicalName появилась в версии
# Apache 1.3. Она разрешает
# использовать каноническое имя для сервера узла.
UseCanonicalName on
# Следующая директива позволяет прокси-серверу, например
# SQUID, не кэшировать документы, которые не генерируются
# автоматически, то есть в процессе выполнения различных
# сценариев.
CacheNegotiatedDocs
# Директива Timeout задает промежуток времени в секундах,
# в течение которого сервер продолжает попытки
# возобновления приостановленной передачи данных.
# Значение директивы Timeout распространяется не только
# на передачу, но и на прием данных.
Timeout 300
# Директива KeepAlive разрешает постоянные соединения,
# то есть такие соединения, в которых производится более
# одного запроса за один раз.
KeepAlive off
# MaxKeepAliveRequests: Максимальное количество запросов,
# разрешенное в течение постоянного соединения. Установите
# 0 для снятия ограничения.
MaxKeepAliveRequests 100
# Директива KeepAliveTimeout определяет тайм-аут для
# постоянного соединения.
KeepAliveTimeout 15
# Минимальное и максимальное число серверов в очереди
MinSpareServers 8
MaxSpareServers 20
StartServers 10
# Ограничивает общее количество клиентов. Когда это число
# будет превышено, новые клиенты получат отказ, поэтому это
# число не должно быть слишком маленьким.
MaxClients 150
# После обработки определенного количества запросов,
# указанного в директиве MaxRequestsPerChild, копия
# сервера завершается, а вместо нее запускается новая.
MaxRequestsPerChild 500
# Директивы конфигурации прокси-сервера
# ProxyRequests On
# Для включения кэширования раскомментируйте строки ниже:
#CacheRoot /var/cache/httpd
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a_domain.com another_domain.edu joes.garage_sale.com
####################################
# Настройки производительности SGI #
####################################
#
#Для использования этой функции раскомментируйте модуль
# mod_mmap_static в разделе описания модулей.
<IfModule mod_mmap_static.c>
QSC on
</IfModule>
# Если вы хотите использовать буферизированное
# протоколирование, раскомментируйте модуль
# mod_log_config_buffered в разделе описания модулей.
# Для использования карты памяти раскомментируйте эту строку:
#mmapfile /var/www/html/file_to_map_in_memory
#
# Если вы хотите настроить процессы-потомки, пожалуйста,
# прочитайте документацию на вашем сервере
# http://localhost/manual/misc/perf-mja.html.
# Эта страница объясняет, как привязать определенный
# IP-адрес или порт к другому процессору.
#SingleListen On
###############################
# Виртуальные серверы #
###############################
#
# Поддержка модуля perl
# Замечание: не удаляйте расположенные далее строки,
# иначе это может разрушить вашу конфигурацию.
<IfDefine PERLPROXIED>
ProxyPass /perl/ http://127.0.0.1:8200/
ProxyPassReverse /perl/ http://127.0.0.1:8200/
</IfDefine>
# Файл, в котором находятся директивы конфигурирования
# виртуальных узлов.
Include conf/vhosts/Vhosts.conf
#
# Для поддержки динамических виртуальных узлов и
# виртуальных домашних каталогов, раскомментируйте
# следующие строки:
#LoadModule vhost_аlias_modulеmodulеs/mod_vhost_alias.so
#AddModule mod_vhost_alias.c
#Include conf/vhosts/DynamicVhosts.conf
#Include conf/vhosts/VirtualHomePages.conf
# Директивы конфигурирования PHP
Include conf/addon-modules/php.conf
Данный текст является ознакомительным фрагментом.