近日折腾vps,想要搞一个apache的server-status来试试查看apache的运行状态。
以前做网站的时候知道这个东西,但是没有自己真实的折腾过,这次算是体验到了。
开起来运行后可以使用http://www.blogguy.cn/server-status类似的网址来实时查看你的服务器运行状态,很方便的说。
我是使用apt-get安装apache的,所以用a2enmod可以很方便的增加模块,这个在前面的文章已经有说过:http://www.blogguy.cn/show-751-1.html
安装完成后,重启apache,直接访问http://www.blogguy.cn/server-status,出现一个大大的错误。
You don't have permission to access /server-status on this server.,这个错误很准确,就是这个错误。
下面简单说说处理这个问题的办法:
找到/etc/apache2/mods-available/status.conf,打开编辑一下
<IfModule mod_status.c>
#
# Allow server status reports generated by mod_status,
# with the URL of http://www.blogguy.cn/server-status
# Uncomment and change the ".blogguy.cn" to allow
# access from other hosts.
#
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost ip6-localhost
# Allow from www.blogguy.cn
</Location>
</IfModule>
一行一行的说过去你就明白了
<Location /server-status>表示访问的url路径,比如你现在设置为server-status就通过http://www.blogguy.cn/server-status访问,你设置为<Location /blogguy-status>就通过http://www.blogguy.cn/blogguy-status访问。
SetHandler server-status是加载的模块,这个不用管他,不用修改。
Order deny,allow,这句要说说,这句话表示apache根据order 规则顺序决定最后使用那一条规则,例如Order deny,allow表示先看deny,最后看allow规则。
实际的例子说话:
Order Deny,Allow
Deny from 210.13.218.218
表示先看deny,最后应用allow规则,也就是拒绝了210.13.218.218这个ip,其他的全开放。
Order Allow,Deny
Allow from all
Deny from 210.13.218.218
表示除了210.13.218.218以外,其余全部允许
Order Allow,Deny
Allow from 210.13.218.218
Deny from all
表示只允许210.13.218.218
说了这么多废话,就是想解释后面的Allow和Deny搭配使用的技巧。
回到很问题上,我现在只允许某个ip访问,可以修改/etc/apache2/mods-available/status.conf为:
<IfModule mod_status.c>
#
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Uncomment and change the ".example.com" to allow
# access from other hosts.
#
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 210.13.219.42
</Location>
</IfModule>
这个修改是全局的,你也修改到sites-available
比如我修改的:/etc/apache2/sites-available/blogguy.cn为(/etc/apache2/sites-available/blogguy.cn是我的blogguy.cn的配置文件):
在VirtualHost里面加入:
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 210.13.219.42
</Location>
重启apache,刷新页面也是一样的效果。
vps的不稳定性真是让人头大啊



