禁用特定文件夹的访问日志记录 - centos 6 / apache 2.4
disable access logging for specific folder - centos 6 / apache 2.4
我在我的一个域的特定文件夹中有一堆 php 脚本,这些脚本经常被访问(每秒 20 次以上)并且想禁用所有这些脚本的访问日志记录(文件夹).我在 Apache 2.4 上使用 CentOS 6 并且有 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: "\"%{%s}t %I .\n%{%s}t %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'代表它们在上面的实际值。
默认情况下 cPanel/WHM 将 cPanel 帐户 (domains/sites/etc) 的访问日志存储在 /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 服务才能使更改生效。
我在我的一个域的特定文件夹中有一堆 php 脚本,这些脚本经常被访问(每秒 20 次以上)并且想禁用所有这些脚本的访问日志记录(文件夹).我在 Apache 2.4 上使用 CentOS 6 并且有 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: "\"%{%s}t %I .\n%{%s}t %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'代表它们在上面的实际值。
默认情况下 cPanel/WHM 将 cPanel 帐户 (domains/sites/etc) 的访问日志存储在 /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 服务才能使更改生效。