Как настроить Apache2 для создания отдельного лог-файла для каждого поддомена?

Как можно настроить сервер Apache для создания отдельного лог-файла для каждого поддомена с использованием переменной subdomain_name?
  • 26 июля 2024 г. 12:13
Ответы на вопрос 1
Для настройки Apache2 на создание отдельного лог-файла для каждого поддомена можно использовать кастомные лог-файлы и журналирование ConditionalLog. 

Вот пример конфигурации в файле VirtualHost для настройки логирования по поддоменам:

```apache
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example.com

    LogLevel warn

    ErrorLog /var/log/apache2/example.com_error.log
    CustomLog /var/log/apache2/example.com_access.log combined

    SetEnvIf Host ^(.+)\.example\.com$ subdomain_name=$1
    CustomLog /var/log/apache2/%{ENV:subdomain_name}_access.log combined env=subdomain_name
</VirtualHost>
```

В приведенном выше примере создается лог-файл для поддомена в директории /var/log/apache2/. Переменная subdomain_name берется из имени поддомена (example.com), которая передается в лог через SetEnvIf. 

Теперь при доступе к поддомену subdomain.example.com будут создаваться лог-файлы вида subdomain_access.log, которые будут содержать записи об обращениях к этому поддомену.

Не забудьте перезапустить сервер Apache после внесения изменений в конфигурационные файлы.
Похожие вопросы