使用 RHEL 和 Apache (httpd),有没有办法:
- 检测哪个 v.host(域)正在获得多少传入连接?
因为在这几天里,我在服务器上收到了很多传入连接,并通过以下方式进行了确认:
- ps aux | grep httpd -c
第734章
这意味着我有 734
个传入连接当前由 Apache 处理,但问题是我有(可以说)10 个 Vhost(域)。
- 那么哪个域的负载较高?
请提供任何尖锐的解决方案。
最佳答案
假设您有一个类似/etc/apache2/sites-enabled/000-example.com 的文件
您可能会看到如下行:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /www/example.com
更进一步,如果需要,您可以通过更改行来为每个 VirtualHost 创建日志文件
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
也是:
ErrorLog ${APACHE_LOG_DIR}/example_com.error.log
CustomLog ${APACHE_LOG_DIR}/example_com.access.log combined
否则,如果您不想为每个 VirtualHost 创建日志文件,那么您可以创建自己的自定义日志格式 http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
例如:
LogFormat "%v %h %l %u %t \"%r\" %>s %b" common
CustomLog ${APACHE_LOG_DIR}/access.log common
当您决定如何记录日志时,您可以编写各种脚本来检查或比较您的日志。如果您为每个虚拟主机使用单独的日志文件,那么会容易得多,因为您可以尝试这样做。
wc -l /var/log/apache2/*access.log
关于Linux + Apache检测每个Vhost的连接计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23209463/