使用Apache的server-status,禁止IP访问服务器

PS.因为直接访问http://www.xxx.com/server-status可以直接看到Apache配置信息,为了避免出现信息泄露问题,最好不要打开server-status

1、确认Apache已经安装status模块:

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

PS.如果Apache没有加载这个模块,如果是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 127.0.0.1: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://xxx.com permanent;
    }

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值