一,nginx中allow/deny指令的用途
1,
Nginx的deny和allow指令是由ngx_http_access_module模块提供,
Nginx安装默认内置了该模块
2,
nginx访问控制模块:
想禁止哪个ip访问就加上deny IP,
想允许哪个ip访问就加上allow IP,
想禁止或者允许所有,则allow all或者deny all
3,常用的场景:
测试站/后台/管理工具站 等,要注意添加ip地址限制
说明:如果可以指定相应站点的端口,通过防火墙来进行限制则更安全一些
二,allow/deny指令的语法
allow/deny address | CIDR | unix: | all
它表示,允许/拒绝某个ip或者一个ip段访问.
如果指定unix:,那将允许socket的访问。
注意:unix:是在1.5.1中新加入的功能。
在nginx中,allow和deny的规则是按顺序执行的
可配置段: http, server, location, limit_except
说明:
1,注意在使用指令时,
如果最后不添加deny all,则可能会允许上面列出ip之外的其他ip均可访问
因为默认是allow all的,
如果只想禁止指定的ip访问,只添加deny x.x.x.x 指令即可
2,如果安全规则想针对全站,放在server段内比较安全,
如果只针对指定的目录做限制,要注意检查location的匹配
三,allow/deny的应用例子
1,只允许指定的ip访问,禁止其他ip访问
allow 43.243.12.116; allow 122.53.54.55; deny all;
2,只禁止指定的ip访问,其他ip都允许访问
deny 43.243.12.116; deny 43.241.242.243; allow all;
说明:allow all可以不添加
3,可以使用子网掩码来指定一个ip地址段:
deny 43.243.12.116/24;
4,一个location例子:
location / { allow 192.168.13.0/24; allow 10.1.5.0/16; deny all; }