httpd.conf: Основной файл конфигурации
Это основной файл конфигурации для сервера Apache HTTP. Он управляет настройками сервера и находится в conf
каталоге установки Apache. Например:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin you@example.com
<Directory "/var/www/html">
AllowOverride None
Require all granted
</Directory>
В приведенном выше фрагменте «ServerRoot» определяет каталог, в котором находятся файлы, специфичные для сервера, такие как файлы журналов и конфигурации. «Listen» определяет порт, который прослушивает Apache, а «ServerAdmin» устанавливает контактный адрес электронной почты для сообщений об ошибках сервера.
Разделы конфигурации
Файл httpd.confсодержит несколько разделов, и т. д. Эти разделы применяют директивы конфигурации к определенным каталогам, файлам или URL-адресам. Например:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Приведенный выше раздел управляет поведением сервера при обработке запросов по указанному пути к каталогу.
Загрузка модуля
Модули расширяют функциональность Apache. Вы можете загружать модули с помощью директивы 'LoadModule'
в файле httpd.conf
:
LoadModule authz_core_module modules/mod_authz_core.so
Здесь:
- LoadModule: Это директива, используемая в файлах конфигурации Apache для загрузки модуля во время процесса запуска.
authz_core_module
: Это идентификатор модуляauthz_core
. Этот модуль предоставляет основные возможности авторизации для Apache, позволяя вам контролировать доступ к ресурсам веб-сайта на основе характеристик запроса, таких как учетные данные пользователя или IP-адрес.modules/mod_authz_core.so
: Это указывает путь к файлу общего объекта модуля ( ) относительно корня сервера. Этот файл является фактическим скомпилированным кодом для модуля.mod_authz_core.so
httpd-vhosts.conf: Управление виртуальными хостами
Виртуальные хосты позволяют размещать несколько веб-сайтов на одном сервере. Конфигурация виртуальных хостов обычно находится в, в подкаталоге внутри ‘conf’. Пример настройки виртуального хоста выглядит следующим образом:httpd-vhosts.confextra
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot "/var/www/example.com"
ErrorLog "logs/example.com-error_log"
CustomLog "logs/example.com-access_log" common
# Other directives might go here
</VirtualHost>
В данном контексте:
<VirtualHost *:80>
: Эта строка начинает определение виртуального хоста на порту 80 (стандартный порт для HTTP). Звездочка *означает, что виртуальный хост прослушивает все доступные IP-адреса.ServerName
: Указывает базовый домен для виртуального хоста.ServerAlias
: Определяет дополнительные имена, которые должны совпадать, как если бы они были базовым именем.DocumentRoot
: Устанавливает каталог, из которого Apache будет обслуживать файлы для этого хоста.ErrorLogи CustomLog
: Настройте расположение и форматы файлов журнала.
Имена и порты
Вы можете указать уникальный ‘ServerName’ для каждого виртуального хоста, наряду с ‘ServerAlias’, который допускает альтернативные имена. ‘DocumentRoot’ определяет каталог, из которого Apache будет обслуживать файлы для этого хоста.
httpd-ssl.conf: Настройка SSL/TLS
Обеспечение безопасности передачи данных через Интернет имеет решающее значение, поэтому необходимо настроить HTTPS через SSL/TLS. Это в первую очередь обрабатывается , часто расположенным в том же подкаталоге «extra», где находится «httpd-vhosts.conf». Пример фрагмента для защищенного виртуального хоста может включать:httpd-ssl.conf
<VirtualHost *:443>
ServerName www.secure-example.com
DocumentRoot "/var/www/secure-example.com"
SSLEngine on
SSLCertificateFile "/path/to/secure-example.com.crt"
SSLCertificateKeyFile "/path/to/secure-example.com.key"
# Include the SSLCertificateChainFile only if your certificate provider requires it
# SSLCertificateChainFile "/path/to/secure-example.com.chain.pem"
# Other directives might go here, like custom log files, server aliases, etc.
</VirtualHost>
Ключевые моменты:
<VirtualHost *:443>
: Указывает, что этот виртуальный хост прослушивает все интерфейсы ( *) на порту 443, который является стандартным портом для HTTPS.SSLEngine on
: Включает SSL/TLS для этого виртуального хоста.SSLCertificateFileи SSLCertificateKeyFile
: Эти директивы указывают на ваш SSL-сертификат и файлы закрытого ключа соответственно.SSLCertificateChainFile
(необязательно): Если ваш поставщик SSL предоставил вам файл цепочки (иногда называемый промежуточным сертификатом), вам следует включить его. Обратите внимание, что в Apache 2.4.8 и более поздних версиях эта SSLCertificateChainFileдиректива устарела, и вместо этого вы можете объединить сертификаты цепочки в конец файла сертификата сервера. Не забудьте заменить пути к сертификату и ключу на фактические пути, где хранятся ваши файлы SSL. После обновления конфигурации всегда проверяйте синтаксисapachectl configtestи
перезапускайте Apache, чтобы применить изменения. Кроме того, убедитесь, что настройки брандмауэра и группы безопасности (если применимо) разрешают трафик через порт 443.
Заключение
Понимание файлов конфигурации Apache HTTP-сервера по умолчанию является ключом к управлению успешной настройкой веб-сервера. Начните с ознакомления с синтаксисом и структурой каждого файла, настраивая его в соответствии с конкретными требованиями вашего сервера. Эффективная конфигурация обеспечивает высокую производительность, безопасность и возможность обработки нескольких сайтов с различными потребностями.
Обратите внимание, что после внесения любых изменений в эти файлы конфигурации вам нужно будет перезапустить сервер Apache, чтобы изменения вступили в силу. Всегда помните о необходимости резервного копирования текущих файлов конфигурации перед внесением любых изменений, чтобы избежать простоя из-за непредвиденных ошибок.