要求
设置ip白名单,需用到nginx geo 与 nginx map
nginx默认加载了ngx-http-geo-module和ngx-http-map-module相关内容;
ngx-http-geo-module可以用来创建变量,变量值依赖于客户端 ip 地址;
ngx-http-map-module可以基于其他变量及变量值进行变量创建,其允许分类,或者映射多个变量到不同值并存储在一个变量中;
Nginx geo 格式说明
Syntax ( 语法格式 ): geo [$address] $variable { ... }
Default ( 默认 ): -
Content ( 配置段位 ): http
Nginx map 格式说明
Syntax ( 语法格式 ): map String $variable { ... }
Default ( 默认 ):-
Content ( 配置段位 ): http
开启nginx连接限制
对指定请求路径不设置限制,如对请求路径为api目录下的请求不做限制,则可写为
server{
location /app {
proxy_pass http://192.168.1.111:8095/app;
limit_conn conn 50;
limit_rate 500k;
limit_req zone=foo burst=5 nodelay;
}
location /app/api {
proxy_pass http://192.168.1.111:8095/app/api
}
}
# 因nginx会优先进行精准匹配,所以以上写法即接触了对api目录下属路径的限制
白名单配置示例
1 |
|
白名单配置可用于对合作客户,搜索引擎等请求过滤限制
特殊情况处理
1 |
|