详解Nginx允许和屏蔽单个IP或者IP段访问配置方案

  • 时间:2018-12-29 23:14 作者:路人宅 来源:路人宅 阅读:99
  • 扫一扫,手机访问
摘要:首先简单理解一下Nginx服务器。Nginx是一款轻量级的Web服务器、反向代理商服务器及电子邮件(IMAP/POP3)代理商服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力的确在同类型的网页服务器中体现较好。本文主要详情如何利用nginx允许和禁止某个IP或者IP段访问,来实现防

首先简单理解一下Nginx服务器。Nginx是一款轻量级的Web服务器、反向代理商服务器及电子邮件(IMAP/POP3)代理商服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力的确在同类型的网页服务器中体现较好。本文主要详情如何利用nginx允许和禁止某个IP或者IP段访问,来实现防止采集和防止被攻击操作。

查找需要禁止的IP,具体命令如下:

[root@iZ256w2hluuZ ~]# awk '{print $1}' /usr/local/nginx/logs/access.log |sort |uniq -c|sort -n

access.log 是日志文件,显示结果左侧为访问次数,右侧为访问者IP,访问次数过多,并且IP不是蜘蛛爬虫的IP需要禁止掉,输出结果:

详解Nginx允许和屏蔽单个IP或者IP段访问配置方案

nginx指令:

allow 语法:allow address | CIDR | unix: | all;

配置段:http, server, location, limit_except

允许某个ip或者者一个ip段访问.假如指定unix:,那将允许socket的访问.注意:unix在1.5.1中新加入的功能,假如你的版本比这个低,请不要使用这个方法。

deny 语法:deny address | CIDR | unix: | all;

配置段:http, server, location, limit_except

禁止某个ip或者者一个ip段访问.假如指定unix:,那将禁止socket的访问.注意:unix在1.5.1中新加入的功能,假如你的版本比这个低,请不要使用这个方法。

高级用法:屏蔽ip的配置文件既可以屏蔽单个ip,也可以屏蔽ip段,或者者只允许某个ip或者者某个ip段访问。

deny IP; # 屏蔽单个ip访问

allow IP; # 允许单个ip访问

deny all; # 屏蔽所有ip访问

allow all; # 允许所有ip访问

deny 123.0.0.0/8;# 屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令

deny 124.45.0.0/16;# 屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令

deny 123.45.6.0/24;# 屏蔽IP段即从123.45.6.1到123.45.6.254访问的命令

allow和deny使用简单实例代码如下:

location / {

deny 192.168.1.1;

allow 192.168.1.0/24;

allow 10.1.1.0/16;

allow 2001:0db8::/32;

deny all;

}

上述实例只允许IPV4的10.1.1.0/16和192.168.1.0/24中出去192.168.1.1及IPV6中的2001:0db8::/32来访问,其余的用户端ip访问都是不允许的。简单屏蔽nginx.conf文件配置参考图:

详解Nginx允许和屏蔽单个IP或者IP段访问配置方案

以文件的是形式允许或者禁止某个IP或者者IP段,新建blocksip.conf文件,添加如下内容:

allow 192.168.1.1;

deny all;

单独网站屏蔽IP的方法,把include blocksip.conf; 内容放到nginx配置对应的在server{}语句块,所有网站屏蔽IP的方法,把include blocksip.conf; 内容放到nginx配置对应的在http {}语句块。

屏蔽访问过于频繁的IP,编写脚本需要根据实际的nginx服务器log日志,取出访问IP和User-Agent,在nginx配置nginx.conf文件中增加内容:

include ./vhost/blocksip.conf;

编写脚本内容如下:

详解Nginx允许和屏蔽单个IP或者IP段访问配置方案

参考资料(源码):http://blog.yoodb.com/yoodb/article/detail/1332

nginx允许和禁止某个IP或者IP段的访问都建立在该访问可以正常通过iptable防火墙。当然,也可以把过滤出的ip直接加到iptables中,彻底拒绝该ip的所有请求。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|软件环境】如何成为一名大数据工程师?(2019-05-20 12:11)
【系统环境|Linux】大数据四大常识,不会你敢说自己在做大数据?(2019-05-19 11:39)
【系统环境|】需要同时掌握AVA和Linux,才可以继续大数据课程的学习(2019-05-18 10:28)
【系统环境|软件环境】学习大数据,一定要了解大数据的这些用途(2019-05-16 10:49)
【系统环境|Linux】bt宝塔控制面板mysql频繁自动停止详细解决办法(2019-05-16 08:52)
【系统环境|】大数据零基础学习路线,新人记得保存收藏哦(2019-05-15 10:54)
【系统环境|】全网最全最新的大数据系统学习路径(2019-05-14 15:38)
【系统环境|Linux】毕业设计:音乐分享系统(2019-05-14 07:48)
【系统环境|】教你零基础如何快速入门大数据技巧(2019-05-12 11:25)
【系统环境|】想学习大数据?这才是完整的大数据学习体系(2019-05-11 11:33)
手机二维码手机访问领取大礼包
返回顶部