Nginx白名单
包含以下知识点:
1、 nginx前面有多层代理的情况下拿到客户端地址(实现白名单功能)
2、 /admin/不允许访问,/admin/userfiles/可以访问
location ^~ /admin/ {
set $realip 0;
set $flag 0;
if ($http_x_forwarded_for ~ “^(\d+\.\d+\.\d+\.\d+)”) {
set $realip $1;
}
if ($realip !~ 116.228.89.244|222.44.226.12) {
set $flag “${flag}1”;
}
if ($uri !~ (/admin/userfiles/).*) {
set $flag “${flag}1”;
}
if ($flag = “011”) {
return 444;
}
……..省略部分配置
}
黑名单
map $http_x_forwarded_for $ip_allowed {
default allow;
192.168.3.12 deny;
192.168.21.3 deny;
}
server指令内
if ($ip_allowed = "deny") {
return 444;
}