禁用域的访问日志记录。(使用 CentOS 和 Apache)

禁用域的访问日志记录。(使用 CentOS 和 Apache)

我尝试禁用专用服务器上的域访问日志记录已超过 10 个小时。我在搜索过程中阅读了 70 多页。我在 Parallel 的论坛上提问,也以另一种方式询问了 stackoverflow……但我仍然无法禁用域访问日志记录。

服务器配置不是我的专业,对于这个领域的许多人来说,我可能还是新手。

上次,我尝试通过添加CustomLog /dev/null plesklog到 /var/www/vhosts/xxx.com/conf/vhost.conf 并运行来禁用它/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=xxx.com来源)但是它没有起作用。

请帮我。

答案1

你真的需要学习如何提出问题,并且不要再重复自己的话(你针对同一个问题开了几篇帖子,每篇帖子的细节都不同)...

您的问题应该是“如何禁用 Plesk 控制的 Apache 中所有虚拟主机的访问日志?”

据我所知,没有简单的方法,因为每次修改某些内容时,Plesk 都会创建/重写所有 apache .conf 文件。

有人做的是创建一个 shell 脚本,在每个 vhosts 的所有 http.include 文件中用“#CustomLog”替换“CustomLog”的所有实例,并将该脚本添加到 crontab 中,以便每 15 分钟运行一次。

查看他的帖子:http://forums.theplanet.com/lofiversion/index.php/t52435.html

不过,我会使用 Perl 进行就地替换,就像这样。我的版本还只注释掉 CustomLog 行(如果它是行中的第一个关键字),并且我让 httpd 只重新加载(SIGHUP)而不是尝试启动它,这样更好:

#!/bin/bash

for FILE in /home/httpd/vhosts/*
do
    perl -p -i -e "s/^[[:space:]]*CustomLog/#CustomLog/" "$FILE/conf/httpd.include"
done
service httpd reload
exit 0

确保以 root 身份运行。

答案2

我认为我的解决方案不是禁用所有域的日志记录的正确答案,但也许您会喜欢它,因为这是一个简单的解决方案;-)

由于隐私问题,我最初的工作是屏蔽所有 IP 地址。我有两种解决方案,具体取决于您的 Plesk 版本。这些解决方案已在 apache2 CentOS 和 Debian 上进行了测试。

我覆盖了“主”Apache 配置文件中的“plesklog”指令。“%h”格式被固定的本地 IP 地址替换,Plesk 空间和流量计算将像以前一样工作。

在 Debian squeeze/sid 和 Plesk 10.x 上,更改配置文件“/etc/apache2/apache2.conf”。搜索行:“Include /etc/apache2/conf.d/”并覆盖“plesklog”变量(即 %h => 127.0.0.2)。重新启动 apache2... 完成

#
# Hack to get rid of the IP Address in the log files, 
# plesklog HAVE TO defined AFTER the Plesk zz... Include!
#
Include /etc/apache2/conf.d/
<IfModule mod_logio.c>
    LogFormat "127.0.0.2 %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" plesklog
</IfModule>
<IfModule !mod_logio.c>
    LogFormat "127.0.0.3 %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" plesklog
</IfModule>

在装有 Plesk 9.5.x 的 CentOS 上,您可以将文件“/etc/httpd/conf.d/zz010_psa_httpd.conf”中的格式更改为所需格式,见上文。这是可能的,因为 Plesk 9 不会像 Plesk 10 那样重新配置其主配置。

如果你不想记录任何内容,只需输入减号或任何你想要的内容,即

LogFormat "-" plesklog

所有操作都必须以 root 身份完成,并且会影响该服务器上的每个/所有 plesk 域 ;-)

答案3

要禁用特定虚拟主机的访问日志,您必须找到相关的自定义日志配置行并在其前面加上#以将其变成注释。

CustomLog logs/access_log plesklog

变成

#CustomLog logs/access_log plesklog

完成此操作后,重新启动 apache

service httpd restart

在您的示例中,要将日志传输到 /dev/null,您需要像这样定义 CusomLog

CustomLog   "|/dev/null" plesklog

|开头的管道很重要。

相关内容