不要在 Apache access.log 中记录某些请求

Bas*_*asj 4 apache matomo

我最近用自托管的分析工具 Piwik 取代了 Google Analytics。

这意味着每次有人连接我的网站http://www.mywebsite.com 时,都会在客户端上执行 Javascript 跟踪代码,该代码会调用我的 Piwik 服务器http://www.mywebsite.com/piwik/piwik.php

结果:

  1. 在我服务器的 Apache 上access.log,有一行关于http://www.mywebsite.com,这是正常的
  2. 在我的 Piwik 数据库中,存储了有关这次访问的信息,这是正常的
  3. 在我服务器的 Apache 上access.log,有一行关于我的 Piwik 服务器收到跟踪请求(由客户端使用 JS 执行)的事实

日志记录部分 3. 显然太多了!从现在开始,自从安装了 Piwik 后,我access.log的尺寸就翻倍了!

如何删除 Apache 登录 access.log 连接到http://www.mywebsite.com/piwik/piwik.php的事实?即客户端 JS 跟踪代码 <--> Piwik 服务器?

Bas*_*asj 8

解决方案是禁用某些请求的日志记录(例如在 /etc/apache2/sites-available/000-default.confDebian 8 中):

<VirtualHost *:80>
  ServerName www.mywebsite.com
  DocumentRoot /home/www/mywebsite
  ...
  SetEnvIf Request_URI "^/piwik(.*)$" dontlog
  CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined env=!dontlog
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

  • 我能够使用这个概念来停止记录图像、CSS 和 js。`SetEnvIf Request_URI "^.*(\.jpg|\.png|\.gif|\.css|\.js|\.svg).*" 不记录` (2认同)