Nginx黑白名单

ByWhat'sUs

Nginx黑白名单

  • 黑/白名单IP限制访问配置

deny和allow指令属于ngx_http_access_module,nginx默认加载此模块,所以可直接使用。

#白名单设置,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;
}

或者通过读取文件IP配置白名单

location /{
    include /home/whitelist.conf;
    #默认位置路径为/etc/nginx/ 下,
    #如直接写include whitelist.conf,则只需要在/etc/nginx目录下创建whitelist.conf
    deny all;
}

cat /home/whitelist.conf

#白名单IP
allow 10.1.1.10;
allow 10.1.1.11;
  • 第二种方法,ngx_http_geo_module
geo $ip_list {
    default 0;
    #设置默认值为0
    192.168.1.0/24 1;
    10.1.0.0/16    1;
}
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,可访问,这时上面添加的IP为黑名单。
	    #白名单,将设置$ip_list = 1,这时上面添加的IP为白名单。
	    proxy_pass http://192.168.152.100:8081;
        }
    }
}

About the author

What'sUs administrator

Leave a Reply

PHP Code Snippets Powered By : XYZScripts.com