禁用特定文件夹的访问日志记录 - centos 6 / apache 2.4
Posted
技术标签:
【中文标题】禁用特定文件夹的访问日志记录 - centos 6 / apache 2.4【英文标题】:disable access logging for specific folder - centos 6 / apache 2.4 【发布时间】:2017-11-30 19:52:34 【问题描述】:我的一个域的特定文件夹中有一堆 php 脚本,这些脚本经常被访问(每秒点击 20 次以上),并且希望禁用所有这些(文件夹)的访问日志记录。我正在使用 CentOS 6 和 Apache 2.4 并且有 WHM/Cpanel。
我找到了有关如何使用环境变量和修改主机文件来执行此操作的信息,但我不确定如何根据我的需要进行自定义。
我想禁用 /home/username/public_html/folder1/folder2/
(其中的所有内容)的日志记录。
这是我在网上找到的(将其放入 vhost 包含文件):
<IfModule mod_userdir.c>
UserDir public_html
SetEnvIf Request_URI "/nolog" dontlog
CustomLog /var/log/apache2/useraccess_log combined env=!dontlog
</IfModule>
我感到困惑的一件事是我有不同的日志位置设置。例如,如果我查找/var/cpanel/userdata/username/domain.com
,它会在顶部显示:
customlog:
-
format: combined
target: /usr/local/apache/domlogs/domain.com
-
format: "\"%%st %I .\\n%%st %O .\""
target: /usr/local/apache/domlogs/domain.com-bytes_log
documentroot: /home/username/public_html
group: username
hascgi: 0
homedir: /home/username
鉴于不同的日志位置,我将如何实现这一点?当我这样做时,我不介意为此文件夹禁用字节日志的日志记录。考虑到它们被访问的频率,这会持续发生太多的日志记录,这对我根本没有用。
'username' 和 'domain.com' 在上面代表它们的实际值。
【问题讨论】:
【参考方案1】:默认情况下,cPanel/WHM 将 cPanel 帐户(域/站点/等)的访问日志存储在 /usr/local/apache/domlogs/ 中。这意味着对该站点的所有请求都记录在该文件中(包括来自文件夹 1、文件夹 2 等的请求)。
你可以试试这样的:
在 /home/username/public_html/folder1/folder2/ 中创建一个 .htaccess 文件,内容如下:
<IfModule mod_userdir.c>
UserDir public_html
SetEnvIf Request_URI "/nolog" dontlog
CustomLog /usr/local/apache/domlogs/domain.com combined env=!dontlog
</IfModule>
看看这是否有效(基本上它应该允许记录但排除来自文件夹 1、文件夹 2 等文件的请求)。
如果这不起作用,那么您可以编辑 /var/cpanel/userdata/username/domain.com 并注释 bytes_log 行和 access_log 行。这应该完全禁用该域的 http 请求的访问日志记录。您可能需要重新启动 httpd 和 cpanel 服务才能使更改生效。
【讨论】:
以上是关于禁用特定文件夹的访问日志记录 - centos 6 / apache 2.4的主要内容,如果未能解决你的问题,请参考以下文章
Linux centos7 VMware Apache访问日志不记录静态文件访问日志切割静态元素过期时间
是否可以为特定记录禁用/启用访问子表单中的控件?访问 2000 - VBA