|
|||||||
Описание директив конфигурационного файла 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 |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|