Apache的mod_status模块提供了一个显示web服务器状态的web页面,包括工作进程数量、活动连接等。
mod_status的输出一般被其他监控服务器状态的工具使用。这里,我们直接用它来显示一个统计状态页面,用这个页面可以方便的定位问题。
打开mod_status
Apache安装之后默认是开启mod_status模块的,但是,我们最好确认一下,使用如下命令:
ls /etc/apache2/mods-enabled/
上面列出的是打开的模块,看看有没有框起来的两个文件,如果没有,说明没有打开mod_status模块,使用下面命令打开:
sudo a2enmod status
配置server-status
在如果你没有添加过virtual host到apache default配置,编辑status.conf:
vim /etc/apache2/mods-enabled/status.conf
修改如下:
SetHandler server-status
Require local
Require ip 27.189.138.218
ip改为允许访问status统计页面的ip地址。当然你可以设置为不限制IP,任何人可以查看,为了系统安全不建议这么做。
如果你添加了多个virtual host,需要在在每个VirtualHost *:80块中添加和上面一样的代码:
SetHandler server-status
Require local
Require ip 27.189.138.218
重启apache服务:
sudo service apache2 restart
在浏览器输入:http://your_domain/server-status:
Rewrite模块
我使用的wordpress,开启了固定链接(开启rewirte模块)。默认情况下,它会把http://your_domain/server-status重定向,你会得到一个wordpress的404页面。修正方法:
进入网址根目录,.htaccess内容如下:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
添加两行,修改之后如下:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^server-status$ - [L]
RewriteCond %{REQUEST_URI} !^/mod_pagespeed_[a-z_]+$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress