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


    Nginx禁止ip访问可以防止指定IP访问我们的网站,本例子可以实现是防止单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 reload 就可以生效了。

    方法二,利用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;
    }
  • 相关阅读:
    用Taro写一个微信小程序——版本升级
    matlab subplot 的边距(with tight margins)
    Nginx(Tengine) 解决 unknown directive "stream" 问题
    MinIO 分布式集群搭建
    Docker 及 Docker Compose 日常操作(团队培训材料)
    基于 AdoptOpenjdk 官方 Dockerfile 制作 jre8 镜像(修改字符集和时区)
    Syncthing 开源文件同步工具
    Harbor 2.2.0 搭建与使用
    Centos7 使用 chronyd 进行时钟同步
    Centos7 安装 Python3 及配置国内源、虚拟环境
  • 原文地址:https://www.cnblogs.com/already/p/6244295.html
Copyright © 2020-2023  润新知