白名单黑名单
方式一 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