网站首页 > 技术教程 正文
首先简单了解一下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指令:
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文件配置参考图:
以文件的是形式允许或禁止某个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;
编写脚本内容如下:
参考资料(源码):http://blog.yoodb.com/yoodb/article/detail/1332
nginx允许和禁止某个IP或IP段的访问都建立在该访问可以正常通过iptable防火墙。当然,也可以把过滤出的ip直接加到iptables中,彻底拒绝该ip的所有请求。
猜你喜欢
- 2024-10-10 通过nginx日志分析IP UV和PV量(nginx日志访问量前十的ip)
- 2024-10-10 Nginx 之 realip模块 使用详解(nginx rewrite模块)
- 2024-10-10 nginx+lua站点防止ip刷新数据处理
- 2024-10-10 生产环境用shell进行nginx日志访问IP和URL统计
- 2024-10-10 https网站(nginx服务器)如何禁止“直接通过IP地址访问”
- 2024-10-10 Nginx通过ip进行限流,并增加白名单
- 2024-09-14 nginx允许IP访问不生效问题「原创」
- 2024-09-14 Linux 配置Nginx反向代理教程和说明
- 2024-09-14 EFK收集nginx日志并展示来源IP地图
- 2024-09-14 Nginx反向代理:通过外网访问内网数据库(mysql)
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)