zoukankan      html  css  js  c++  java
  • Nginx 禁用IP IP段

    http://www.cnblogs.com/apanly/p/5568716.html

    最近公司网站被竞争对手用爬虫频繁访问,所以我们这边要禁止这些爬虫访问,我们通过nginx 指令就可以实现了

    方法一:直接在LB机器上封IP

    1.在 blocksip.conf 文件中加入要屏蔽的ip或者ip端

    1
    2
    3
    4
    sudo vim /etc/nginx/blocksip.conf
     
    deny 180.168.74.26;
    deny 91.212.45.0/24;

    2. 在nginx.conf中包含这个文件

    1
    2
    3
    4
    5
    6
    sudo vim /etc/nginx/nginx.conf
    http {
    .......
    .......
    include /etc/nginx/blocksip.conf;
    }

    3.重启服务

    1
    sudo /etc/init.d/nginx reload

    方法二:直接在APP业务机器上操作(有时候LB并不能直接操作)

    这个时候我们不能通过$remote_addr获取ip,因为经过LB过来,需要同$http_x_forwarded_for获取,使用nginx map指令

    1.通过map指令设置 变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sudo vim /etc/nginx/nginx.conf
    http{
    .......
    .......
        map $http_x_forwarded_for $ip_allowed {
            default allow;
            ~s*192.168.22.*$ deny;
            ~s*192.168.21.11$ deny;
        }
    }

    2.在vhost 的server 配置中 通过$ip_allowed变量判断

    1
    2
    3
    4
    5
    6
    7
    server{
    ........
    ........
        if ( $ip_allowed = "deny" ) {
            return 403;
        }
    }

    3.重启服务

    1
    sudo /etc/init.d/nginx reload
  • 相关阅读:
    正则表达式
    c#文件流
    css
    Flash笔记 快捷键
    .Net截取指定长度的汉字,其余用...表示的方法
    远程修改最新消息管理系统(JQuery版)
    远程修改最新消息管理系统
    kubernetes 1.6 集群实践 (一)
    创建kafak集群
    创建zookeeper集群
  • 原文地址:https://www.cnblogs.com/dhcn/p/9967937.html
Copyright © 2011-2022 走看看