一 应用场景
黑名单能有效'防止某个IP恶意攻击'或者'拒绝特定IP'的访问
(1)特点
备注:这个功能是'http_access_module'模块提供的
+++++++++++'分割线'+++++++++++
Nginx的deny和allow指令是'该模块'提供,Nginx安装默认'内置了'该模块
'除非'在安装时有指定 '--without-http_access_module'
功能: 用来对'特定IP'的进行访问控制
'默认是允许所有IP访问',若'部分允许'需要定义deny all
(2)指令
'allow'
语法: allow address | 'CIDR' | unix: | all;
默认值: —
区块: http, server, location, limit_except
允许'某个ip'或者'一个ip段'访问
+++++++++++'分割线'+++++++++++
'deny'
语法: deny address | 'CIDR' | unix: | all;
默认值: —
'区块': http, server, location, limit_except
+++++++++++'分割线'+++++++++++
注意: 区块,不同区块'作用范围'不一样
(3)所有网站屏蔽IP的方法
核心: 放到'http{}'里面
方式1
在nginx的配置文件夹中'/etc/nginx/conf.d'新建一个'黑白名单'的配置
例如: 如例子中的两个ip'就被禁止'访问网站
deny 172.25.2.200; --> '禁止该ip主机来访问'所有的资源
备注: deny 黑名单,allow白名单,'白名单'要写在'黑名单之前'才会起效
效果
注意: ip限制访问导致'403'
方式2
备注: 相当于'把配置读取'进去
方式3
直接'在http'进行全局设置
(4)单独网站屏蔽IP的方法
做法: 放到某一个'网站location{}'的语句块中
location / {
deny 172.25.2.200; '禁止某个ip访问'
allow 172.25.2.0/24; '允许一个网段'
allow 2001:0db8::/32; 'ipv6'
deny all;
}
(5)限制某些目录下的某些文件的访问
具体可以'自己组合' --> 禁止访问所有目录下的 'sql|log|txt|jar|sh|py' 后缀的文件
location ~.*\.(sql|log|txt|jar|war|sh|py|php) {
deny all;
}
(6)其它方式
'防火墙'、'if指令'变量判断