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笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
 
	