Я пытаюсь установить SetEnvIf переменная в apache2 и исключить ее в CustomLog чтобы мои журналы не заполнялись. Я хочу сопоставить регулярное выражение, а также определенные IP-адреса.
Я пытался следовать инструкциям, приведенным на сайте ниже, но похоже, что это не работает. http://www.howtoforge.com/setenvif_apache2
Предупреждение новичка: сайт не указывает, где разместить оператор SetEnvIf, поэтому я помещаю их в apache2.conf, а также в / sites-available / default.
Вот пример того, что я хочу отфильтровать в access.log:
x.x.x.x - - [06/Sep/2014:15:02:35 -0500] "HEAD /dir/dir2/file1/file2.gif HTTP/1.1" 200 224 "-" "-"
127.0.0.1 - - [06/Sep/2014:15:02:30 -0500] "GET /foo1/foo2.php? HTTP/1.0" 200 28956 "-" "Wget/1.12 (linux-gnu)"
Так что в apache2.conf и / сайты-доступные / по умолчанию, я поставил это:
SetEnvIf Request_URI "HEAD /dir/" dontlog
SetEnvIf Request_Addr "127\.0\.0\.1" dontlog
SetEnvIf Request_Addr "::1" dontlog
И добавил env =! dontlog к существующим / по умолчанию / CustomLog запись:
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog
Затем я казнил apachectl изящный .
Ничего не меняется.
Фильтры нужно добавить только в один конфиг. Попробуйте удалить то, что вы добавили в apache2.conf, и оставьте все в / sites-available / default.
Например, если вы хотите отфильтровать поисковых роботов из своих журналов, конец вашего файла конфигурации будет выглядеть так:
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
# Filter all search bots from the access log.
SetEnvIfNoCase User-Agent googlebot dontlog
SetEnvIfNoCase User-Agent bingbot dontlog
SetEnvIfNoCase User-Agent baiduspider dontlog
# Custom Log location + options
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog
</VirtualHost>
Кроме того, когда вы делаете apachectl graceful, это может занять некоторое время. Если вы просто тестируете изменения, удалите файлы журналов, выполните apachectl изящно, и когда вы увидите, что файлы журналов воссоздаются заново, вы узнаете, что они заполняются с использованием указанных вами новых параметров фильтра.