我有一台基于 CentOS 的服务器。每个域在 vhosts 中都有自己的条目。如何找出哪些域正在占用带宽?

我有一台基于 CentOS 的服务器。每个域在 vhosts 中都有自己的条目。如何找出哪些域正在占用带宽?

我有一台基于 CentOS 的服务器。每个域在 vhosts 中都有自己的条目。

所有内容都记录在 /var/log/httpd/access_log 中。

我如何才能知道哪些域名正在占用带宽?

它与 Apache 一起运行。在访问日志中,我只能看到 GET /index.php(或其他内容),而看不到实际的主机名(/domain),也看不到 referer(因此我只能大致判断出哪些页面比较受欢迎)。

我该怎么做才能记录完整的请求 URI,并解析它们并查看最受欢迎的?

谢谢

答案1

<VirtualHost>给定 VirtualHost 的块中,您可以指定一个CustomLog条目,以使发往该虚拟主机的请求转到其自己的日志文件。这Stack Overflow 问题提供了一个例子:

<VirtualHost *:80>
 ServerName example.com
 DocumentRoot /var/www/domains/example.com/html
 ErrorLog /var/www/domains/example.com/apache.error.log
 CustomLog /var/www/domains/example.com/apache.access.log common
 php_flag log_errors on
 php_flag display_errors on
 php_value error_reporting 30719
 php_value error_log /var/www/domains/example.com/php.error.log
 </VirtualHost>

所以这应该使您能够通过 vhost 分割所有内容并让您获得有意义的统计数据。

相关内容