白名单黑名单

方式一 ngx_http_geo_module(推荐)

geo $ip_list {
default 0;
#设置默认值为0
192.168.1.0/24 1;			#网段或IP地址 后边是标识符
10.1.0.0/16    1;
#include ip_white.conf; #也可以读取文件
}
server {
listen       8081;
server_name  192.168.152.100;

location / {
root   /var/www/test;
index  index.html index.htm index.php;
if ( $ip_list = 0 ) { #判断标识符等于0 继续执行 该判断可以在server域或location
#判断默认值,如果值为0,可访问,这时上面添加的IP为黑名单。
#白名单,将设置$ip_list = 1,这时上面添加的IP为白名单。
proxy_pass http://192.168.152.100:8081;
}
cat /etc/nginx/ip_list.conf

192.168.152.1 1;
192.168.150.0/24 1;

方式二:

allow、deny

#白名单设置,allow后面为可访问IP 
location / {
     allow 123.13.123.12;
     allow 23.53.32.1/100;
     deny  all;
}

#黑名单设置,deny后面接限制的IP,为什么不加allow all? 因为这个默认是开启的 
location / {
     deny 123.13.123.12;
}

#白名单,特定目录访问限制
location /tree/list {
     allow 123.13.123.12;
     deny  all;
}

ngx_http_geo_module 负载均衡,根据不同标识,分配不同服务器(扩展)

geo $country {
    default default;
    111.11.11.0/24   uk;
    #IP段定义值uk
    111.11.12.0/24   us;
    #IP段定义值us
    }
upstream  uk.server {
    erver 122.11.11.11:9090;
    #定义值uk的IP直接访问此服务器
} 

upstream  us.server {
    server 133.11.12.22:9090;
    #定义值us的IP直接访问此服务器
}

upstream  default.server {
    server 144.11.11.33:9090;
    #默认的定义值default的IP直接访问此服务器
}
 
server {
    listen    9090;
    server_name 144.11.11.33;

    location / {
      root  /var/www/html/;
      index index.html index.htm;
     }
 }

白名单黑名单
https://www.hechunyu.com/archives/bai-ming-dan-hei-ming-dan
作者
chunyu
发布于
2022年02月28日
许可协议