博客小子:记录我们对互联网和生活的探索! 注册 | 登陆

apache的server-status出现没有权限的处理办法

Tags: apache, server-status

近日折腾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的不稳定性真是让人头大啊

Tags: apache, server-status

« 上一篇:如何修改SSH的远程连接端口号22 | 下一篇:关于hostmonster和godaddy可退款的信用承诺 »

只显示10条记录相关文章

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):