经常有人会为apache进程占用过多的服务器资源而困扰,而apache的日志又多又杂,一般的管理员很难从日志里看出结果来,如果你用的是 Apache 1.3.2 及以后的版本,这时候apache的一个很好的工具可以解决您的困扰,那就是apache自带的功能----server-status。
怎样才能打开apache的server-status呢?
首先你得编译apache的一个模块,你可以检查你的配置文件(httpd.conf)中是否有LoadModule status_module modules/mod_status.so,如果有的话,说明你的apache已经加载了此模块。或者你编译的时候加上了--enable- module=so也表明服务器支持了,其实最好的办法就是照下面的步骤,先把server-status打开,看能否使用。如果没有这个模块该怎么添加 上呢?
如果没有加载这个模块,如果您是linux服务器,那么就需要您重新编译apache了,编译的时候加上参数--enable-module=so即 可,如果你是windows系统的话,无需任何编译,只要把刚才时候说的LoadModule status_module modules/mod_status.so这句加上,如果前面有带#号,开启的话,需要将#去除。
确认你的系统有这个模块之后,下面的工作就是配置server-status了!
怎样才能打开apache的server-status呢?
首先你得编译apache的一个模块,你可以检查你的配置文件(httpd.conf)中是否有LoadModule status_module modules/mod_status.so,如果有的话,说明你的apache已经加载了此模块。或者你编译的时候加上了--enable- module=so也表明服务器支持了,其实最好的办法就是照下面的步骤,先把server-status打开,看能否使用。如果没有这个模块该怎么添加 上呢?
如果没有加载这个模块,如果您是linux服务器,那么就需要您重新编译apache了,编译的时候加上参数--enable-module=so即 可,如果你是windows系统的话,无需任何编译,只要把刚才时候说的LoadModule status_module modules/mod_status.so这句加上,如果前面有带#号,开启的话,需要将#去除。
确认你的系统有这个模块之后,下面的工作就是配置server-status了!
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from .foo.com
</Location>
ExtendedStatus On
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from .foo.com
</Location>
ExtendedStatus On
这是一个完整的server-status的配置
deny表示禁止的,如果你不想使用的话,可以设置为上面的设置,完全开启的话,此行整体删除即可,allow from表示可以通过那个地址访问,如果你在使用的话,可以设置为allow from all,最后一句表示的是待会访问的时候能看到详细的请求信息!
下面就可以通过url访问到server-status了,http://ip地址/server-status,你可以通过更改< Location /server-status>里面的server-status改变访问路径,比如该为<Location /discuz-status>,这样你就可以通过http://ip地址/discuz-status。上面的ip地址是和你的 Allow from设置有关,如果你这是设置为某一个指到你的ip上的域名的话,那么可以通过http://域名/discuz-status来访问!
赶快来实际操作一下吧,你就可以使用上apache的server-status了