Nginx访问控制简述
名称 | 请求方法排除限制指令 |
---|---|
指令 | limit_except |
作用域 | http, server, location |
默认值 | -- |
指令说明 | 对指定方法以外的所有请求方法进行限定 |
配置样例如下:
http{
limit_except GET {
allow 192.168.1.0/24; # 允许192.168.1.0/24范围的IP使用非GET的方法
deny all; # 禁止其他所有来源IP的非GET请求
}
}
名称 | 组合授权控制指令 |
---|---|
指令 | satisfy |
作用域 | http, server, location |
默认值 | all |
指令值选项 | all 或 any |
指令说明 | 默认情况下,在响应客户端请求时,当 ngx_http_access_module、ngx_http_auth_basic_module、ngx_http_auth_request_module、ngx_http_auth_jwt_module 模块被限定的访问控制条件都符合时,才允许授权访问。当指令值为 any 时,ngx_http_access_module、ngx_http_auth_basic_module、ngx_http_auth_request_module、ngx_http_auth_jwt_module 模块的访问控制条件,符合任意一个,则认为可以授权访问 |
配置样例如下:
location / {
satisfy any;
allow 192.168.1.0/32;
deny all;
auth_basic "closed site";
auth_basic_user_file conf/htpasswd;
}
名称 | 内部访问指令 |
---|---|
指令 | internal |
作用域 | http, server, location |
默认值 | -- |
指令说明 | 限定 location 的访问路径来源为内部访问请求,否则返回响应状态码 404 |
1) Nginx 限定以下几种类型为内部访问。
- 由 error_page 指令、index 指令、random_index 指令和 try_files 指令发起的重定向请求;
- 响应头中由属性 X-Accel-Redirect 发起的重定向请求,等同于 X-sendfile,常用于下载文件控制的场景中;
- ngx_http_ssi_module 模块的 include virtual 指令、ngx_http_addition_module 模块、auth_request 和 mirror 指令的子请求;
- 用 rewrite 指令对 URL 进行重写的请求。
2) 内部请求的最大访问次数是 10 次,以防错误配置引发内部循环请求,超过限定次数将返回响应状态码 500。
配置样例如下:
error_page 404 /404.html;
location = /404.html {
internal;
}
名称 | 响应限速指令 |
---|---|
指令 | limit_rate |
作用域 | http, server, location |
默认值 | 0 |
指令说明 | 服务端响应请求后,被限定传输速率的大小。速率是以字节/秒为单位指定的,0 值表示禁用速率限制 |
配置样例如下:
server {
location /flv/ {
flv; limit_rate_after 500k; # 当传输速率到500KB/s时执行限速
limit_rate 50k; # 限速速率为50KB/s
}
}
map $slow $rate {
1 4k;
2 8k;
}
limit_rate $rate;
名称 | 响应最大值后限速指令 |
---|---|
指令 | limit_rate_after |
作用域 | http, server, location |
默认值 | 0 |
指令说明 | 服务端响应请求后,当向客户端的传输速率达到指定值时,按照响应限速指令进行限速 |
配置样例如下:
location /flv/ {
flv;
limit_rate_after 500k;
limit_rate 50k;
}
声明:《Nginx系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。