Назад | Перейти на главную страницу

apache - ведение журнала виртуального хоста

У меня есть настройка виртуального хоста с выключенным usecanonicalname.

У меня есть ServerName domain.com и ServerAlias ​​* .domain.com на виртуальном хосте.

Использование строки% v LogFormat apache2 будет захватывать только domain.com, и я пытаюсь заставить ее захватывать foo.domain.com, чтобы я мог соответственно разделить журналы.

LogFormat, который я сейчас использую,

LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined

С помощью % {Host} i в вашем формате журнала должно быть указано содержимое заголовка "Host" ... который выглядит именно так, как вы хотите.

Цитата из документации:

% {Foobar} i - содержимое строки (строк) заголовка Foobar: в запросе, отправленном на сервер. На это влияют изменения, внесенные другими модулями (например, mod_headers). Если вас интересует, каким был заголовок запроса до того, когда большинство модулей изменили бы его, используйте mod_setenvif, чтобы скопировать заголовок во внутреннюю переменную среды и записать это значение с помощью% {VARNAME} e, описанного выше.

http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

Надеюсь это поможет.

Почему бы просто не вставить отдельные директивы CustomLog и ErrorLog в каждое определение виртуального хоста?

<VirtualHost *:80>
ServerAdmin webmaster@place
DocumentRoot /var/www/hosted/place/root
ServerName www.place
AddHandler cgi-script .pl
CustomLog /var/www/hosted/place/logs/access_log combined
ErrorLog /var/www/hosted/place/logs/error_log
</VirtualHost>