Різний файл журналу Apache для кожного піддомену?


3

Чи можливо налаштувати Apache на використання іншого файлу журналу для кожного піддомену , навіть якщо всі субдомени знаходяться в одному контейнері VirtualHost?

Отже, у мене є лише один VirtualHost:

<VirtualHost *:80>
  ServerName example.com
  ServerAlias test1.example.com test2.example.com test3.example.com
</VirtualHost>

І я хочу закінчити наступні файли журналу:

/var/log/httpd-access_test1.log
/var/log/httpd-access_test2.log
/var/log/httpd-access_test3.log

Я знаю, що, ймовірно, я можу це зробити за допомогою власного формату журналу та розділених журналів, але мені було цікаво, чи є спосіб просто зробити Apache для мене.

Відповіді:


3

Ви просто вказуєте ErrorLogі CustomLogв межах кожної VirtualHostдирективи. Зважаючи на це, ви не зможете використовувати ServerAliasта мати окремі файли журналів для кожного хоста за допомогою нормальної продуктивності, не вказуючи окремий VirtualHost.

Тим не менш, ви можете передавати журнал через скрипт і мати сценарій зробити окремі файли. Подивіться на документацію з трубопроводу.

Ви також можете використовувати сценарій обробки після публікації, наприклад, grepдля розбору журналів. Сценарій обробки після публікації може бути вказаний у нічному логротеті під розділами postrotateабо preprotate.

Apache 2.2 Трубопровідна реєстрація


1
Наявність різного журналу серверів для кожного VirtualHost не допомагає мені. У мене є лише один VirtualHost. У межах однієї VirtualHost є кілька субдоменів. Мені потрібні окремі журнали для кожного піддомену в межах одного VirtualHost.
Кіт Палмер-молодший

Відокремте свої ServerAliasпіддомени на VirtualHostоднакові конфігурації (див. Документацію Apache Re:) NameVirtualHostабо продовжуйте використовувати трубопровідні журнали та спеціальний сценарій обробки, як описано Warner вище.
voretaq7

1
Я дійсно не хотів би цього робити, VirtualHost має багато конфігурації з ним, і було б багато матеріалів конфігурації / вставки. Можливо, є спосіб, як я можу зробити «Включити» із загальними речами ...
Кіт Палмер-молодший

трубопровідна лісозаготівля, як описують Warner, ймовірно, буде для вас гарним ліжком.
корупція

1

Ви повинні мати можливість використовувати змінні середовища apache для роботи цього:

LogFormat "%h \"%r\" %>s \"%{Referer}i\" \"%{User-Agent}i\"" vhostformat

SetEnvIfNoCase Host example\.com mainlog
CustomLog /var/log/httpd-example.log vhostformat env=mainlog

SetEnvIfNoCase Host test1\.example\.com vhost1log
CustomLog /var/log/httpd-access_test1.log vhostformat env=vhost1log

SetEnvIfNoCase Host test2\.example\.com vhost2log
CustomLog /var/log/httpd-access_test2.log vhostformat env=vhost2log

SetEnvIfNoCase Host test3\.example\.com vhost3log
CustomLog /var/log/httpd-access_test3.log vhostformat env=vhost3log
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.