nginx 拒绝指定IP访问服务器
因为测试站点老是被百度收录,所以在测试站点上做了nginx上拒绝所有外来IP的访问。
location /private{
allow 192.168.1.3;//自己公司的外网IP。
deny all;//不允许所有的外来IP访问。
}
这样设置后,目录下的php之外的文件确实只有192.168.1.3这个网的机器访问,但是php文件却依然可以访问,这是为什么哪?
因为nginx的匹配方式是正则表达式优先级比较高。因此PHP解析用的是正则表达式进行匹配,而要限制的目录如果不是用正则表达式,所以,就算是要限制的目录,因为PHP还是能被匹配到,所以,还是解析PHP了。
所以,如果想解决的话,需要把目录也写成正则匹配,而且要放在PHP的前面,否则就会先匹配PHP。
location ~ ^/ {
allow 192.168.1.3;
deny all;
}
改成这样就可以了,外网IP访问的话就会显示 403 forbidden
没有评论▼