日期:2014-05-16  浏览次数:20899 次

如何开启Apache server-status,并禁止直接通过IP访问

1.如何打开Apache Server Status

(1)打开的Apache配置文件httpd.conf。

(2)确保其中有LoadModule status_module modules/mod_status.so,说明你的Apache已经加载了此模块。
如果Apache没有加载这个模块,如果是linux服务器,就得重新编译Apache,加上–enable-module=so参数即可;如果你是windows系统的话,无需任何编译,只要把刚才时候说的LoadModule status_module modules/mod_status.so这句加上,如果前面有带#号,开启的话,需要将#去除。

(3)配置Apache Server Status

<IfModule mod_status.c>
<Location /server-status>
??? SetHandler server-status
??? Order deny,allow
??? Allow from all
</Location>
</IfModule>

这是一个完整的server-status的配置。第一行的server-status表示以后可以用类似http://IP/server-status来访问,同时http://IP/server-status?refresh=N 将表示访问状态页面可以每N秒自动刷新一次;

?

<IfModule mod_status.c>
ExtendedStatus On
</IfModule>

?

这里ExtendedStatus On表示的是待会访问的时候能看到详细的请求信息,另外该设置仅能用于全局设置,不能在特定的虚拟主机中打开或关闭。启用扩展状态信息将会导致服务器运行效率降低。

?

2.禁止直接通过IP访问

(1)新增一个virtual Host

<VirtualHost *:80>
ServerName 192.168.119.32
DocumentRoot /
<Directory />
Order deny,allow
Deny from all
</Directory>
</VirtualHost>

(2)重启一下Apache进程

/opt/IBMIHS/bin/apachectl -k stop -f /opt/IBMIHS/conf/httpd.conf
/opt/IBMIHS/bin/apachectl -k start -f /opt/IBMIHS/conf/httpd.conf

(3)通过http://ip/server-status 查看是否可以打开,并访问到。

(4)浏览器直接打开 http://ip 应该会提示:

Forbidden

You don't have permission to access / on this server.


IBM_HTTP_Server at 192.168.119.32 Port 80

?

?