【发布时间】:2019-03-03 13:49:34
【问题描述】:
我有一个服务器,前面有一个 Nginx。有很多请求,其中一些包含特殊的单词示例:
/posts/men/clouths
我也有一个白名单 ip 文件。我想在 Nginx 中编写一条规则,如果请求包含“men”,则仅当请求者的 ip 在白名单文件中时才允许请求。 如果 requests 不包含“men”,则仍然允许该请求。
【问题讨论】:
我有一个服务器,前面有一个 Nginx。有很多请求,其中一些包含特殊的单词示例:
/posts/men/clouths
我也有一个白名单 ip 文件。我想在 Nginx 中编写一条规则,如果请求包含“men”,则仅当请求者的 ip 在白名单文件中时才允许请求。 如果 requests 不包含“men”,则仍然允许该请求。
【问题讨论】:
完成
http {
## load whitelist
map $remote_addr $deny {
default 0;
include /path/to/whitelist.txt;
}
server{
## check
set $is_white_list 0;
if ($request_uri ~ ".*men.*"){
set $is_white_list 1;
}
if ($deny) {
set $is_white_list 1$is_white_list;
}
if ($is_white_list = 1) {
return 403;
}
##// epg check
}
【讨论】: