博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx禁止ip访问或IP网段访问方法
阅读量:7069 次
发布时间:2019-06-28

本文共 1281 字,大约阅读时间需要 4 分钟。

转载:

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地址的

方法一,

首先建立下面的配置文件放在的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中加入: 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 i
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;
}

转载于:https://www.cnblogs.com/-abm/p/10230262.html

你可能感兴趣的文章
如何成为月薪3万左右的UI设计师,应该学习什么能力?
查看>>
mysql 修改datadir
查看>>
两台web服务器做文件共享,负载均衡
查看>>
eclipse maven 导出项目依赖的jar包
查看>>
线程池模型
查看>>
使用spring boot构建微服务
查看>>
域用户管理
查看>>
SCVMM2012SP1之环境准备
查看>>
failed to install tomcat6 service check your settings and permissions的解决办法
查看>>
bash启动脚本
查看>>
我的友情链接
查看>>
树莓派3 之 安装Mysql服务
查看>>
MySql体系架构
查看>>
构建双web服务器+单mysql服务器组成的web系统
查看>>
jquery
查看>>
alter system switch logfile与alter system archive log current
查看>>
H3C MSR3020路由NQA实例配置
查看>>
数据类型转换的常见错误
查看>>
一个基于WebGL的仿真3D水池有逼真的水波纹效果
查看>>
一个简单的并发程序
查看>>