12.6. Пример файла httpd.conf

12.6. Пример файла httpd.conf

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

Листинг 12.13. Пример файла 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.

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

# Он запишет информацию в протокол, когда буфер объемом 4К

# переполнится. Используется файл журнала access_log

#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 более безопасна,

# но xxsi содержит больше функций.

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/modalias.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_raodule 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.с

#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.с

AddModule mod_negotiation.с

AddModule mod_status.с

AddModule mod_info.c

AddModule modinclude.c

#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.c

AddModule mod_alias.c

# Модуль mod_jserv должен быть объявлен до mod_rewrite.

<IfDefine HAVE_JSERV>

AddModule mod_jserv.c

</IfDefine>

AddModule mod_rewrite.с

AddModule mod_access.с

AddModule mod_auth.c

AddModule mod_auth_anon.с

#AddModule raod_auth_dbm.с

#AddModule mod_auth_db.с

AddModule mod_digest.c

#AddModule mod_cern_meta.с

AddModule mod_expires.с

AddModule mod_headers.с

AddModule mod_usertrack.с

#AddModule mod_example.с

#AddModule mod_unique_id.с

AddModule mod_so.c

AddModule mod_setenvif.c

#-------------– 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/a.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.gif .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 /etс/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 или же 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

# Обычно для модуля РНР3 (он не является частью 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 extl

# Для использования сценариев 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 "The server made a boo boo.

# n.b. the (") marks it as text, it does not get output

#

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

# ErrorDocument 404 /missing.html

# to redirect to local url /missing.html

# ErrorDocument 404 /cgi-bin/missing_handler .pi

# n.b. can redirect to a script or a document using server-side-includes.

#

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

# ErrorDocument 402 http://some.other_server.com/subscription_info.html

#

<Location /manual>

ErrorDocument 404 "The document you requested has not been

installed on your system. Please install the apache-manual

package.

</Location>

# Модуль 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

# Следующие директивы отключают ответы НТТР/1.1 для браузеров,

# которые не поддерживают протокол HTTP/1.1

BrowserMatch "RealPlayer 4.0" force-response-1.0

BrowserMatch "Java/l.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 задает электронный адрес вебмастера вашего

# Web-узла. В случае возникновения ошибок именно по этому адресу

# будет отправлено сообщение.

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 %1 %u %t "%r" %>s %b "%{Referer}i" "%{UserAgent}i"" combined

LogFormat "%h %1 %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/ittpd/httpd.lock

# Директива ServerName позволяет вам установить имя узла вашего

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

# то есть установить "www" вместо реального имени сервера.

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

# вашего домена.

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/misс/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_alias_module modules/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

Данный текст является ознакомительным фрагментом.