Конфигурация Apache2 в Linux

Конфигурация Apache2 в Linux

    Общие сведения

    Официальная документация: https://httpd.apache.org/docs/2.4/ru/
    Файл конфигурации: /etc/apache2/httpd.conf
    apache запускается от имени root и следом запускает несколько дочерних процессов, которые выполняют работу по прослушиванию и ответу на запросы от клиентов.
    Справочник директив: Здесь
    Справочник модулей и функций: Здесь


    Цепочка фильтров доступна в Apache 2.0 и выше и позволяет приложениям обрабатывать входящие и исходящие данные очень гибким и настраиваемым образом, независимо от того, откуда поступают данные. Мы можем предварительно обрабатывать входящие данные и обрабатывать исходящие данные после обработки по желанию.
    Подробнее о фильтрах Здесь
    "Обработчик" - это внутреннее представление Apache действия, которое должно выполняться при вызове файла. Как правило, файлы имеют неявные обработчики, основанные на типе файла. Обычно все файлы просто обслуживаются сервером, но определенные типы файлов "обрабатываются" отдельно.
    Подробнее об обработчиках: Здесь
    Синтаксис, регулярные выражения, переменные среды, бинарные операторы, унарные операторы, которые используются для конфигурации: Здесь
    Директивы, которые могут использоваться для правил обработки в файле .htaccess Здесь
    Вспомогательные программы: Здесь
    Пример команд вспомогательной программы apachectl:

    #Установка apk add apache2 apk add apache2-ctl #Запуск и останов apachectl -k start apachectl -k stop #Перезапуск дочерних процессов и конфигурации apachectl -k restart #Проверка синтаксиса apachectl -t #Показать скомпилированные модули apachectl -l #Показать динамические модули apachectl -M
    Файлы настроек

    /etc/apache2/apache2.conf
    /etc/apache2/conf.d/*
    /etc/apache2/conf-available/* #дополнительные настройки веб-сервера
    /etc/apache2/mods-available/* #настройки модуля
    /etc/apache2/sites-available/* #настойки виртуальных хостов
    /etc/apache2/ports.conf #Порты на которых работает apache
    Есть две папки available и enabled, где enabled это символическая ссылка на available
    /etc/apache2/conf.d/default.conf #Это с настройками по умолчанию, директивы которые в нем используются ниже:

    #ServerName - основное имя домена #ServerAlias - дополнительное имя, по которому будет доступен сайт #User, Group - пользователь и группа, от имени которых будет работать программа #HostnameLookups - записывать в логи вместо ip адресов доменные имена #LogLevel - уровень логирования ошибок #Include - подключает путь с дополнительной конфигурацией #Максимальное время для повторной попытки timeout 60 #Позволяет передавать несколько файлов за одно соединение( html, css, js и т.д. ) KeepAlive On #Максимальное кол-во запросов за одно соединение MaxKeepAliveRequests 100 #Таймаут соединения KeepAliveTimeout 5 #Указывает корень сайта DocumentRoot /var/www/localhost

    Коды ответа сервера apache: Здесь
    Несколько хостов могут указывать на один и тот же IP-адрес, а один физический сервер может иметь больше одного IP-адреса.
    HTTP-сервер Apache настроен с помощью простых текстовых файлов. Эти файлы могут располагаться в разных местах, в зависимости от того как вы установили сервер. Общие места расположения файлов можно найти в Вики HTTP-сервера Apache. Если вы установили httpd из исходного кода, то расположение файлов конфигурации по умолчанию следующее: /usr/local/apache2/conf. По умолчанию файл конфигурации называется httpd.conf. Это тоже может варьироваться в сторонних дистрибутивах сервера.
    Конфигурация часто разбивается на несколько небольших файлов, для удобства управления. Эти файлы загружаются через директиву Include.
    Сервер настраивается путём размещения директив конфигурации в этих файлах конфигурации.
    Если это глобальная настройка, она должна располагаться в конфигурационном файле вне разделов , , или других разделов. Если настройка относится только к конкретному каталогу, значит она должна быть внутри секции , которая описывает этот каталог, и так далее.
    В дополнение к основному файлу конфигурации, некоторые директивы могут располагаться в файлах .htaccess, расположенных в папках с контентом. Файлы .htaccess в первую очередь предназначены для людей у которых нет доступа к главному конфигурационному файлу сервера.
    Директива DocumentRoot указывает на корень сайта, Эта директива устанавливается глобально или отдельно для каждого виртуального хоста
    Расположение журнала ошибок задаётся директивой ErrorLog, которая может быть установлена глобально или для каждого виртуального хоста

    ip-адрес и порт

    ListenДиректива указывает серверу принимать входящие запросы только на указанный порт (ы) или комбинации адресов и портов.

    #Прослушивает порт 80 Listen 80 #Прослушивает адрес и порт Listen 192.168.1.1:80 #Прослушивает адрес, порт только для https Listen 192.168.1.1:443
    Область действия

    <Directory>
    <DirectoryMatch>
    <Files>
    <FilesMatch>
    <Location>
    <LocationMatch>
    <VirtualHost>
    Директивы также можно ограничить, поместив их внутри <VirtualHost> разделов, чтобы они применялись только к запросам для определенного веб-сайта.
    Значения переменных определенных с помощью define могут подставляться с помощью фигурных скобок ${VAR}
    Чтобы изменить конфигурацию только для части сервера, можнго расширить свои директивы, поместив их в <Directory> разделы , <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, и <LocationMatch>. Эти разделы ограничивают применение директив, которые они прилагают к определенным расположениям файловой системы или URL-адресам. Они также могут быть вложенными, что позволяет выполнять очень тонкую настройку.

    <Directory /var/www/localhost/home/test/> #Параметр значение AllowOverride None #указывает нужно ли читать .htaccess файлы из этой директории Options - All #указывает какие особенности веб-сервера нужно разрешить в этой папке. #All - разрешить все #FollowSymLinks - переходить по символическим ссылкам #Indexes - отображать содержимое каталога если нет файла индекса. Require - all #устанавливает, какие пользователи имеют доступ к этому каталогу, all, user, group Order - Allow from all #позволяет управлять доступом к директории. Принимает два значения Allow,Deny </Directory>
    .htaccess

    AccessFileName
    AllowOverride
    Директивы, размещенные в .htaccess файлах, применяются к каталогу, в который помещается файл, и ко всем подкаталогам. .htaccess файлы имеют тот же синтаксис, что и основные файлы конфигурации. Поскольку .htaccess файлы считываются при каждом запросе, изменения, внесенные в эти файлы, вступают в силу немедленно.

    <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
    Типы контейнеров

    <Directory>
    <DirectoryMatch>
    <Files>
    <FilesMatch>
    <If>
    <IfDefine>
    <IfModule>
    <IfVersion>
    <Location>
    <LocationMatch>
    <MDomainSet>
    <Proxy>
    <ProxyMatch>
    <VirtualHost>
    Подробнее здесь: Здесь
    В директивах могут использоваться подстановочные знаки:
    <Каталог "/home/*/public_html">


    Источники
    Последнее изменение: 07.10.2024 11:29


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

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ