我们可以在哪个文件中修改 apache 记录/未记录的内容?

我们可以在哪个文件中修改 apache 记录/未记录的内容?

我有一个带有 Apache 的 Debian 8。我的/etc/apache2/sites-available/000-default.conf就像下面这样。
我可以询问 Apache 如何以及在哪个配置文件中不登录/var/log/apache2/other_vhosts_access.log来自以下位置的流量http://www.mysite2.org或来自http://www.mysite3.org/subdir/所有其余的内容都应像往常一样记录到同一文件中other_vhosts_access.log

<VirtualHost *:80>
  ServerName www.mysite1.org
  DocumentRoot /home/www/mysite1
  <Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName www.mysite2.org
  DocumentRoot /home/www/mysite2
  <Directory />
  ...
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName www.mysite3.org
  DocumentRoot /home/www/mysite3
  <Directory />
  ...
  </Directory>
</VirtualHost>

+ 10 other virtual hosts

答案1

每个虚拟主机都需要定义错误日志和通用日志,如果没有这些,则使用默认日志,另请注意,值得创建一个默认虚拟主机,它可以捕获不属于您的域之一的所有流量(将其 dns 指向您网站的人) )。这可能会对搜索结果产生不良后果,因为它是欺骗内容。

所以,在每个虚拟主机中;

    ErrorLog "logs/web1-error_log"
    CustomLog "logs/web1-access_log" common

    ErrorLog "logs/web2-error_log"
    CustomLog "logs/web2-access_log" common

更新:

没有看到关于不记录特定目录的部分,这可以通过设置环境变量来实现。

答案2

感谢@MikeJonesey 的回答。要添加更多详细信息,这是解决方案,请输入/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
  ServerName www.mysite3.org
  DocumentRoot /home/www/mysite3
  <Directory />
  ...
  </Directory>
  SetEnvIf Request_URI "^/subdir(.*)$" dontlog
  CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined env=!dontlog
</VirtualHost>

相关内容