nginx - 白名单允许特定请求 Nginx
问题描述
我有一个服务器,前面有一个 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
}
推荐阅读
- android - Android Studio AVD 导致 avd 崩溃,AS 无警告关闭
- sql - 如何正确地将 SELECT DISTINCT ON 应用于我的 SUM() 查询
- azure - Azure 应用程序网关正在将请求重定向到应用服务
- c++ - 如何在头文件中声明几个二维数组和指向它的指针,并在 cpp 文件中定义它们
- css - 在 R 中使用 CSS 自定义 ioslides
- java - java中静态字段的双重检查锁定
- css - 如何为具有内外弯曲角的可变高度的 div 设置样式
- php - PHP将任何类传递给Trait的一种方法并创建新实例
- gpio - TI TIVAC GPIO 端口一次写入整个字节
- javascript - 如何将对象移动到其原始位置js?