陈银山 发表于 2017-12-23 10:45:04

Nginx禁止ip访问或IP网段访问方法

  常用的linux做法
  iptables参考规则
代码如下复制代码  iptables -I INPUT -p tcp –dport 80 -m –mac-soruce$MAC -j DROP 基于mac地址的
  iptables -I INPUT -p tcp –dport 80 -s $IP -j DROP 基于ip地址的
  方法一,
  首先建立下面的配置文件放在nginx的conf目录下面,命名为blocksip.conf:
  加入以下代码:
代码如下复制代码  #屏蔽soso蜘蛛IP
  deny 113.108.12.154;    #此为搜搜蜘蛛IP
  deny 124.115.0.0/24;    #此为屏蔽搜搜蜘蛛124.115.0.1 ~ 124.115.0.255整个网段IP
  deny 124.115.4.0/24;    #此为屏蔽搜搜蜘蛛124.115.4.1 ~ 124.115.4.255整个网段IP
  屏蔽整个网段的IP时有可能会造成错杀,不过几率很低。
  保存一下。
  在nginx的配置文件nginx.conf中加入:include blocksip.conf;

  重启一下nginx的服务:/usr/local/nginx/sbin/nginx -s>  方法二,利用nginx的ngx_http_access_module
  ngx_http_access_module 模块可以用来设置允许/禁止哪些ip或ip段访问,可以设置一个文件内容类似下面的:
代码如下复制代码deny IP;  deny subnet;
  allow IP;
  allow subnet;
  # block all ips
  deny    all;
  # allow all ips
  allow    all;
  其中网段的写法是这样的:192.168.1.0/24这样的形式。
  然后编辑nginx.conf,加入一行:
  include blockips.conf;
  这样设置以后,该服务器上所有的网站都会按照这个设置来拒绝或允许访问。如果想只针对某个网站,可以在具体的网站的配置中加入:
代码如下复制代码location / {  allow   192.168.0.0/24;
  deny    all;
  }
  这样就只允许192.168.0.0网段的ip访问,其他ip访问会返回一个403错误。
  还可以自定义一个403错误的页面,可以在/usr/local/nginx/html下新建个error403.html文件,里面按照html的语法写个文档,写上一些说明文字。
  然后编辑nginx.conf,加入:
代码如下复制代码error_page   403/error403.html;  location = /error403.html {
  root   html;
  }
页: [1]
查看完整版本: Nginx禁止ip访问或IP网段访问方法