我有一个服务器,前面有一个Nginx。有很多请求,其中有些包含特殊单词示例:
/posts/men/clouths
我也有一个白名单ip文件。我想在Nginx中编写一条规则,如果请求包含“ 人”,则仅在请求者的ip位于白名单文件中时才允许该请求。 如果请求中不包含“ 人”,则仍然允许该请求。
答案 0 :(得分:-1)
完成
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
}