Как сказать Apache не регистрировать определенные запросы в своем журнале доступа

Я пытаюсь установить переменную SetEnvIf в apache2 и исключить его в CustomLog, чтобы мешать моим журналам заполниться. Я хочу соответствовать regex и также определенному дюйм/с.

Я пытался следовать инструкциям, перечисленным на сайте ниже, но это, кажется, не работает. 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 и/sites-available/default, я поместил это:

    SetEnvIf Request_URI "HEAD /dir/" dontlog
    SetEnvIf Request_Addr "127\.0\.0\.1" dontlog
    SetEnvIf Request_Addr "::1" dontlog

И добавленный ENV =! dontlog к существующей/default/CustomLog записи:

    CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog

Я затем выполнился apachectl корректный.

Ничто не изменяется.

2
задан 14 March 2015 в 01:28
1 ответ

Фильтры нужно добавить только в одну конфигурацию. Попробуйте удалить то, что вы добавили в 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 изящно, и когда вы увидите, что файлы журнала воссоздаются заново, вы узнаете, что они заполняются с использованием указанных вами новых параметров фильтра.

2
ответ дан 3 December 2019 в 11:41

Теги

Похожие вопросы