nginx白名单

nginx 主配置文件http段:

$ cat PATH_NGINX/catconf/nginx.conf
       ...
     geo $ipaddr $ip_whitelist{
        default 0;
        include white_ip.conf;
     }
        ...

白名单:

$ cat PATH_NGINX/conf/white_ip.conf
    ...
221.176.33.0/24  1;
10.0.0.0/8  1;
192.168.0.0/24  1;
114.114.114.114  1;
    ...

server 段:

server {
     ...
    set $ipaddr $http_cdn_src_ip;
    if ($ipaddr = "") {
         set $ipaddr $remote_addr;
    }

     if ($ip_whitelist = 0){
       return 444;
     }
     ...
}

http_cdn_src_ip : 进过CDN是你客户端的出口IP,如果不进过CDN,此参数是空值。
remote_addr: 代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理,那么你的浏览器会先访问这个代理,然后再由这个代理转发到网站,这样web服务器就会把remote_addr设为这台代理机器的IP(出口IP)

你可能感兴趣的:(nginx白名单)