MyTetra Share
Делитесь знаниями!
Описание директив конфигурационного файла apache2.conf (на русском)
Время создания: 10.08.2023 12:22
Текстовые метки: linux, apache, apache2.conf, настройки, директивы, описание, документация, пример
Раздел: Компьютер - Linux - Сеть в Linux - Apache
Запись: xintrea/mytetra_syncro/master/base/1691659356jw7x65rqgq/text.html на raw.github.com

Ниже приведен основной конфигурационный файл веб-сервера Apache 2 с пояснениями что делает каждая опция. Пояснения сделаны на русском языке. Это, по-сути, переведенный стандартный файл Apache 2, который устанавливается в систему при установке пакета apache2 в Ubuntu 16.04.



# /etc/apache2/apache2.conf - ГЛАВНЫЙ конфиг Apache.

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

# всем сайтам, хотя технически можно задавать и локальные настройки сайтов.

# Документация

# и в файле /usr/share/doc/apache2/README.Debian на вашем Ubuntu сервере

#

# Ссылка на Обзор конфигурации Apache в Ubuntu

#------------------------------------------------------------------------------


# ГЛОБАЛЬНАЯ КОНФИГУРАЦИЯ

#

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

# если они не указаны явно в конфигах, они все равно участвуют в

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

#------------------------------------------------------------------------------


# ServerRoot

# Syntax: ServerRoot directory-path

# Default: ServerRoot /etc/apache2

# Context: server config

# Status: Core

# Module: core

# Директива ServerRoot, определяет путь к домашней директории Apache с

# конфигурационными файлами. По умолчанию имеет значение "/etc/apache2".

# Внимание, завершающего слеша в пути НЕ должно быть!

# По умолчанию директива закомментирована, что равносильно ее значению

# "/etc/apache2"

#

#ServerRoot "/etc/apache2"

#------------------------------------------------------------------------------


# Mutex

# Syntax: Mutex mechanism [default|mutex-name] ... [OmitPID]

# Default: Mutex default

# Context: server config

# Status: Core

# Module: core

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

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

# файла блокировки, который должен быть на ЛОКАЛЬНОМ диске.

#

# Здесь file:путь указан через подстановку переменной APACHE_LOCK_DIR,

# значение, для которой задано в файле "/etc/apache2/envvars"

# как /var/lock/apache2

#

# Второй аргумент задает механизм исключения как default, при котором

# блокировка выполняется как определено Apache Portable Runtime (APR).

#

# Блокировку можно отобразить, запустив сервер с опцией: sudo apache2 -V

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

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

#

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

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

#

Mutex file:${APACHE_LOCK_DIR} default

#------------------------------------------------------------------------------


# PidFile

# Syntax: PidFile filename

# Default: PidFile /var/run/apache2/apache2.pid

# Context: server config

# Status: MPM

# Module: event, worker, prefork, mpm_winnt, mpmt_os2

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

# идентификационный номер, когда она начинается.

# Аргумент директивы задается как переменная APACHE_PID_FILE значение для

# которой задано в файле /etc/apache2/envvars как /var/run/apache2/apache2.pid

# Данное значение в большинстве случаев не требует корректировки, поэтому

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

#

PidFile ${APACHE_PID_FILE}

#------------------------------------------------------------------------------


# Timeout

# Syntax: TimeOut seconds

# Default: TimeOut 60

# Context: server config, virtual host

# Status: Core

# Module: core

# Директива Timeout задет количество секунд, в течение которых Apache будет ждать

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

# По истечении этого времени, если процесс не завершиться, Apache выдаст отказ в

# обработке запроса по таймауту.

#

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

# большинства скриптов и для получения входящих данных.

# Если у вас нет "тяжелых" сценариев, то можно это время уменьшить, например,

# до 180 секунд (3 минуты).

#

Timeout 300

#------------------------------------------------------------------------------


# KeepAlive

# Syntax: KeepAlive On|Off

# Default: KeepAlive On

# Context: server config, virtual host

# Status: Core

# Module: core

# Директива KeepAlive определяет разрешать или нет удержание соединения с

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

#

# По умолчанию, значение директивы ON, что заставляет Apache удерживать активным

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

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

# соединении определяется в директиве MaxKeepAliveRequests ниже.

# Если значение KeepAlive будет установлено в off, то за одно соединение будет

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

# Для большинства случаев значение директивы следует задавать как on.

#

KeepAlive On

#------------------------------------------------------------------------------


# MaxKeepAliveRequests

# Syntax: MaxKeepAliveRequests number

# Default: MaxKeepAliveRequests 100

# Context: server config, virtual host

# Status: Core

# Module: core

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

# внутри одного открытого активного соединения с клиентом.

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

# не ограничено. Это даже рекомендовано.

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

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

# для большей производительности.

#

MaxKeepAliveRequests 100

#------------------------------------------------------------------------------


# KeepAliveTimeout

# Syntax: KeepAliveTimeout num[ms]

# Default: KeepAliveTimeout 5

# Context: server config, virtual host

# Status: Core

# Module: core

# Директива KeepAliveTimeout задает время в секундах удержания соединения активным

# в ожидании запроса клиента, т.е. максимальное время простоя активного соединения.

#

# Если активное соединение простаивает в течении этого времени (нет повторного

# запроса от того же клиента), то оно будет закрыто.

#

# Установка KeepAliveTimeout в большое значение может привести к снижению

# производительности в сильно загруженных серверах. Чем выше это значение, тем

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

#

KeepAliveTimeout 5

#------------------------------------------------------------------------------


# User

# Group

# Syntax: User unix-userid

# Syntax: Group unix-group

# Context: server config

# Status: Base

# Module: mod_unixd

# Директивы User и Group задают имя пользователя и имя группы пользователя от

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

#

# Если у вас PHP работает как модуль Apache, то php файлы будут обрабатываться от

# имени указанных User и Group. Учитывайте это при настройке прав на каталоги сайта.

#

# В стандартной инсталляции в Apache в Ubuntu Apache работает в однопользовательском

# режиме от имени указанных здесь User и Group. Если вы хотите что бы Apache

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

# установить Apache модуль libapache2-mpm-itk

# из репозитория [universe] Ubuntu. После этого вы можете в виртуальном хосте директивой

# AssignUserId назначить USER GROUP конкретно для данного виртуального хоста.

# Context: virtual host

# Syntax: AssignUserID user-id group-id

# <IfModule mpm_itk_module>

# AssignUserId USER GROUP

# </IfModule>

# Значение директив задано в переменные в файле /etc/apache2/envvars, где

# APACHE_RUN_USER=www-data и APACHE_RUN_GROUP=www-data


User ${APACHE_RUN_USER}

Group ${APACHE_RUN_GROUP}

#------------------------------------------------------------------------------


# HostnameLookups

# Syntax: HostnameLookups On|Off|Double

# Context: server config, virtual host, directory

# Default: HostnameLookups Off

# Status: Core

# Module: core

# Если директива HostnameLookups включена, то при записи сообщения в лог файл

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

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

# Например, www.apache.org (on) или 205.60.128.130 (off).

#

# Без надобности лучше не включать, т.к. если включить, то Apache будет для

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

# доменного имени клиента на основе его IP, что увеличит нагрузку на сервер и

# время обработки запроса.

#

HostnameLookups Off

#------------------------------------------------------------------------------


# ErrorLog

# Syntax: ErrorLog file-path|syslog[:facility]

# Context: server config, virtual host

# Status: Core

# Module: core

# Директива ErrorLog задает расположение общего файла журнала ошибок и его имя.

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

# тоже задать свой файл лога ошибок, то тогда Apache будет писать сообщения об

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

# Если вы указали свой ErrorLog для виртуального хоста, то ошибки этого

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

#

# Значение директивы задано в файле /etc/apache2/envvars, где

# APACHE_LOG_DIR=/var/log/apache2, поэтому по умолчанию путь будет вида:

# /var/log/apache2/error.log

#

# Формат строк лога ошибок (ErrorLog) задается директивой

# ErrorLogFormat

# Context: server config, virtual host,

# и задан уже по умолчанию, поэтому если он вас устраивает, то тогда

# вам не нужно задавать ErrorLogFormat директиву явно.

#

ErrorLog ${APACHE_LOG_DIR}/error.log

#------------------------------------------------------------------------------


# LogLevel

# Syntax: LogLevel [module:]level [module:level] ...

# Context: server config, virtual host, directory

# Default: LogLevel warn

# Status: Core

# Module: core

# Available values: trace8, ..., trace1, debug, info, notice, warn,

# error, crit, alert, emerg.

#

# Директива LogLevel определяет уровень сообщений для записи в лог файл указанный

# в директиве ErrorLog. Если указать уровень warn, то будут записаны все сообщения

# уровня warn(сообщения), error(ошибки), crit(критические), alert(предупреждения),

# emerg(авария).

#

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

# LogLevel info ssl:warn будет означать, для всех info, а для ssl warn только.

#

LogLevel warn

#------------------------------------------------------------------------------


# Подключение директорий с конфигами модулей, для загрузки их конфигураций

# Пути указаны относительные по отношению к ServerRoot "/etc/apache2"

IncludeOptional mods-enabled/*.load

IncludeOptional mods-enabled/*.conf


# Подключение файла с директивами задания портов.

# Путь указан относительно ServerRoot "/etc/apache2"

Include ports.conf

#------------------------------------------------------------------------------


# В этой секции представлено несколько блоков директив <Directory>, которые

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

# файловой системы.

#

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

# Apache в Ubuntu и обеспечивает минимально необходимые меры по настройке

# безопасности web сервера.

#

# Общая логика задания директив здесь такая: вначале выполняют запрет на обращение

# из браузера ко всем файлам и каталогам в Ubuntu, а затем уже открывают разрешения

# только конкретным каталогам и файлам в файловой системе Ubuntu.

#

# Заданные здесь по умолчанию ограничения и разрешения могут быть переопределены вами

# как здесь (глобально), так и в ваших конфигах виртуальных хостов.

#

# В общем случае можно порекомендовать оставить здесь только блок директив запрета

# для обращений к корню файловой системы, а все остальные, разрешающие блоки вынести

# от сюда в конфиги ваших виртуальных хостов.


<Directory />

# Блок устанавливает запрет на доступ из браузера ко всем файлам и каталогам,

# через запрет на доступ к корню файловой системы Ubuntu

# Options

# Директива Options определяет, доступные опции web сервера в данном каталоге

# Context: server config, virtual host, directory, .htaccess

# Default: Options FollowSymlinks

# FollowSymLinks - разрешает серверу открывать символьные ссылки

Options FollowSymLinks

# AllowOverride

# НЕ читать файлы .htaccess в локальных директориях

AllowOverride None

# Запрет доступа для всех

Require all denied

</Directory>


# После установки ограничений идет блок директив установки разрешений.

<Directory /usr/share>

# Блок разрешает доступ для всех к директории /usr/share в файловой системе

# НЕ читать файлы .htaccess в локальных директориях

AllowOverride None

# Разрешить доступ всем

Require all granted

</Directory>


<Directory /var/www/>

# Блок разрешает доступ для всех к директории /var/www/ в файловой системе

# Indexes - разрешить выводить в браузере список файлов директории

# FollowSymLinks - разрешает серверу открывать символьные ссылки

Options Indexes FollowSymLinks

# НЕ читать файлы .htaccess в локальных директориях

AllowOverride None

# Разрешить доступ всем

Require all granted

</Directory>


#<Directory /srv/>

# Комментированный блок заготовка

# Блок разрешает доступ для всех к директории /srv/ в файловой системе

#

# Indexes - разрешить выводить в браузере список файлов директории

# FollowSymLinks - разрешает серверу открывать символьные ссылки

# Options Indexes FollowSymLinks

#

# НЕ читать файлы .htaccess в локальных директориях

# AllowOverride None

#

# Разрешить доступ всем

# Require all granted

#</Directory>

#------------------------------------------------------------------------------


# AccessFileName

# Syntax: AccessFileName filename [filename] ...

# Default: AccessFileName .htaccess

# Context: server config, virtual host

# Status: Core

# Module: core

# Директива AccessFileName устанавливает имя (только имя) файла, который Apache

# будет искать в каждом каталоге сайта. Этот файл используется для директив

# конфигурации уровня каталога сайта (Context: .htaccess).

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

#

AccessFileName .htaccess

#------------------------------------------------------------------------------


# FilesMatch

# Syntax: <FilesMatch regex> ... </FilesMatch>

# Context: server config, virtual host, directory, .htaccess

# Override: All

# Status: Core

# Module: core

# Блок кода в директиве FilesMatch устанавливает запрет доступа к файлам вида

# .htaccess и .htpasswd веб-клиентам

#

<FilesMatch "^\.ht">

# Запретить доступ всем

Require all denied

</FilesMatch>

#------------------------------------------------------------------------------


# LogFormat

# Syntax: LogFormat format|nickname [nickname]

# Context: server config, virtual host

# Status: Base

# Module: mod_log_config

# Директива LogFormat задает формат строк лога доступа (CustomLog) и имя этого

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

# CustomLog

# Context: server config, virtual host,

# Module: mod_log_config

# Status: Base

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

# вашего виртуального хоста, если вы решите вести этот лог отдельно от общего

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

# Обычно нет необходимости изменять заданные здесь значения.

#

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined

LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %O" common

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

LogFormat "%{User-agent}i" agent

#------------------------------------------------------------------------------


# Подключение конфигурационных файлов из каталога conf-enabled домашней

# директории Apache

IncludeOptional conf-enabled/*.conf


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

# sites-enabled директории Apache

IncludeOptional sites-enabled/*.conf


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования