Apache2.4禁止使用IP访问修改配置方法

1.首先确认Apache已经安装status模块:

httpd.conf中查看LoadModule status_module modules/mod_status.so是否开启(前面是否有#);

如果没有开启,操作方法如下:

linux服务器:重新编译Apache,加上–enable-module=so参数即可;

windows服务器:无需任何编译,LoadModule status_module modules/mod_status.so 去除注释及可(删除该行前的“#”)

2、配置Apache Server Status:

修改httpd.conf,在最后加上server-status的配置:

<IfModule status_module>
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
#Allow from all
</Location>
</IfModule>

上面的配置指定的是禁止访问server-status,如果你想开启server-status,在Deny from all前面加上#,去掉Allow from all前面的#即可。

3、禁止IP访问Apache服务器:

按照之前搭建lanmp的步骤,Apache虚拟站点配置文件是http-vhost.conf,所以修改vi /etc/apacheconf/extra/httpd-vhosts.conf,在最前面加入如下虚拟站点:

<VirtualHost *:80>
ServerName 服务器ip地址
<Directory />
Order Allow,Deny
Deny from all
</Directory>
</VirtualHost>

保存退出,重启Apache服务,这样就就可以屏蔽通过ip访问站点的操作,但是配置其它Apache虚拟站点的时候ServerName再使用localhost就无效了,必须用域名。

4、修改nginx的配置文件,禁止ip访问nginx服务:
按照之前的教程,只需要修改nginx.conf即可:
在nginx.conf中找到include vhost/*.conf;,在此之前添加一个server,内容如下:

server
{
listen 外网IP:80 default;
server_name _;
#return 403;
rewrite ^(.*) http://xxxx.com permanent;
}

重启nginx,这样所有通过ip访问nginx服务器的时候都会被rewrite到设定的域名下,需要注意的是,同Apache虚拟站点配置一样,设定了禁止ip访问之后,nginx虚拟站点的server_name也不能使用localhost,这样不管通过ip访问nginx还是Apache服务都是屏蔽状态,在上面的配置文件中可以直接返回一个错误状态,也可以直接跳转到一个指定的网址。

此条目发表在Web分类目录。将固定链接加入收藏夹。