白名单允许特定请求Nginx

时间:2019-03-03 13:49:35

标签: nginx whitelist

我有一个服务器,前面有一个Nginx。有很多请求,其中有些包含特殊单词示例:

/posts/men/clouths

我也有一个白名单ip文件。我想在Nginx中编写一条规则,如果请求包含“ ”,则仅在请求者的ip位于白名单文件中时才允许该请求。 如果请求中不包含“ ”,则仍然允许该请求。

1 个答案:

答案 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
}