你想了解你的http应用上有多少人在用吗?他们在请求什么内容?有多少进程地运行,这些进程的状态?apache为我们提供了两个模块用于查看服务器状态和配置文件信息。这两个模块就是mod_info 和 mod_status 。

mod_status能准确地告诉你,有哪些人在浏览您的网站,有多少子进程在运行,以及这些进程在干吗。mod_info就是显示编译到Apache里面的东西的列表以及其他针对服务器的各种特性。

默认上面两个模块在安装时是开启的。如果你的未开启而你想开启,在http.conf中将下面两行的#去掉,变成下面的状态就行了。

1LoadModule status_module modules/mod_status.so
2LoadModule info_module modules/mod_info.so

上一张从http://servername/server-status 的截图先:

apache-status
apache-status

W 代表一个正在应答的子进程,_ 表示空闲的子进程在等待进入的连接。每一个点代表一个还没有生成的潜在的子进程。每一个潜在允许使用的服务用这样的一段来表示。
想了解更详细的信息可以开启ExtendedStatus 开关,这个开关缺省是关的。打开这个开关之后,除了以上信息以外,还可以得到一张每一个子进程及其所作工作的列表。对于每一个子进程而言,你可以得到它的PID ,以及它占用的CPU 时间和已经运行的时间。

extendstatus-cpu
extendstatus-cpu

对于服务器而言,你可以得到服务器启动以后的合计点击数,CPU的利用率以及每分钟点击数,还有传输给客户端的总计字节数。

extstatus-total
extstatus-total

具体可以参看下该图: http://www.apache.org/server-status

上面看完了status模块,接下来看info模块:

20120511113943

如果你输入:http://yourserver/server-info/ 就可以看到服务器内置的模块列表或者通过DSO 加载的模块列表。这对于安装和配置特定的服务器来说是十分有用的。特别是用来对错误的配置文件查找问题时。

上面的图片还是需要配置文件的支撑才行,现在看下配置文件,我在xampp测试环境下的最简配置文件是:

 1<IfModule status_module>
 2<Location /server-status>
 3    SetHandler server-status
 4</Location>
 5#ExtendedStatus On
 6</IfModule>
 7<IfModule info_module>
 8<Location /server-info>
 9    SetHandler server-info
10</Location>
11</IfModule>

做为站点管理人员,肯定不希望别人看到我服务器的状态信息,这里可以在配置文件里加一些控制:

1<Location /server-status>
2    SetHandler server-status
3    Order deny,allow
4    Deny from all
5    Allow from 127.0.0.1
6</Location>

另外想增加密码访问的,可以看下apache的authuserfile相关的配置。 作为同样出色的nginx也具有类似的模块。这里就不再介绍,改天放到另外一篇里写吧!