如何在 Apache 中使用多个 VirtualHost 来跟踪正在请求的页面?

如何在 Apache 中使用多个 VirtualHost 来跟踪正在请求的页面?

我有一个 Apache 1.3 网络服务器,配置了多个VirtualHost条目,可为多个独立网站提供服务。

某些时候,Apache 会收到大量请求,导致服务器负载过高。我想知道所有这些站点中的哪些正在接收请求。

我该怎么做?我读过Apache 的mod_info模块,但不知道是否存在安全风险。

谢谢!

答案1

如果每个域都有一个日志文件,例如 /var/log/apache/domain.tld/access_log

然后,您可以使用 watch、sort 和 du 来找出哪个文件变化最快(因为 apache 总是将内容添加到日志文件中)

# watch "du -k /var/log/apache/*/access_log |sort -n"

或者如果你有很多文件,而你只对那些变化最大的文件感兴趣

# watch "du -k /var/log/apache/*/access_log |sort -n |tail -30"

答案2

我的建议是将您的修改LogFormat为包括%v,这是服务请求ServerName的。<VirtualHost>

从那里,通过日志分析,您可以确定大多数请求来自哪里。

答案3

您可以使用以下命令记录请求的主机名:

%{Host}i

您可以使用以下方式记录 VirtualHost 的 ServerName:

%v

相关内容