`

Nginx 限制单个IP的并发连接数/速度来减缓垃圾蜘蛛爬虫采集

阅读更多

不知道大家碰没碰到过被一些垃圾蜘蛛爬虫采集造成服务器飙升的情况,反正明月是经常性的碰到 YandexBot 、 SMTBot 等等这类不需要的网络蜘蛛爬虫的骚扰,有些甚至一天的采集量达到接近1G的流量,虽然可以通过【 使用Fail2ban禁止垃圾采集爬虫,保护Nginx服务器 】一文的办法来屏蔽,但是这类爬虫还是会不断变更名字继续出现。

其实,可以使用Nginx限制单个IP的并发连接数能够减少一些采集程序或者DDOS的攻击。这点儿明月一直都没有意识到,今天闲来无事就研究了一下,感觉从原理上还是有一定作用的,今天就分享出来,算是自己的笔记,以方便以后部署运维的时候采用。

下面是以 军哥 LNMP 一键安装包 为例的,其他LNMP包自行参考其文档吧。

在LNMP的Nginx配置中已经添加了部分代码,但是是注释掉的,可以编辑 /usr/local/nginx/conf/nginx.conf 文件

注明下面的设置需要在1.1.8以上版本的Nginx的设置才有效的,至于老版本的我就不在多说了,毕竟还用老版本的真心是不多见了!

查找:

#limit_conn_zone $binary_remote_addr zone=perip:10m;

将前面的#去掉,没这一行的,话加上

limit_conn_zone $binary_remote_addr zone=perip:10m;

默认情况下,如下图所示位置:

再在要设置限制连接数的虚拟主机配置里的server段里添加上

limit_conn perip 10;

10就是单个IP的最大并发连接数。

limit_rate 100k;

limit_rate 为限速为 100KB/秒 。

如下图实例截图:

限制每个连接速度为100K,此限制是针对单个线程,比如,我用IE下载是100K,当用迅雷时它会占用2个线程,所以迅雷下载速度为200K,如果单个IP的并发数设置为10,则多线程下载的话速度可以达到100K×10。

最后运行 /usr/local/nginx/sbin/nginx -t 测试配置是否有错误,如没有错误执行:

/usr/local/nginx/sbin/nginx -s reload

重载配置使其生效。

至此,就完成了 Nginx 限制单个 IP 的 并发连接数 / 速度 来减缓垃圾蜘蛛爬虫采集造成的服务器负载压力了,当然效果还是要看实际数据采集情况的,明月会观察一阵子的,感觉原理上应该是有效的!对单个IP有个基本的限制还是比较靠谱的,毕竟网上太多不受规矩的爬虫了。

分享到:
评论

相关推荐

    nginx 限制ip、并发量、连接数等配置

    在运维过程中,为了保障服务器稳定性和安全性,通常需要对访问进行一定的限制,包括限制特定IP、控制并发连接数以及设定连接数上限。本文将详细介绍如何在Nginx配置中实现这些功能。 一、限制特定IP访问 在Nginx...

    nginx防并发限制ip连接数等配置.zip

    Nginx通过设置`limit_conn`和`limit_req`模块来限制每个IP地址的并发连接数和请求速率。这两个模块可以帮助我们有效地控制服务器的访问流量,避免DDoS攻击和其他滥用行为。 **2. limit_conn模块** `limit_conn`模块...

    nginx与apache限制ip连接数和带宽方法.docx

    nginx 与 Apache 限制 IP 连接数和带宽方法 本文档旨在介绍如何使用 Nginx 和 Apache 限制 IP 连接数和带宽的方法。这些方法可以帮助管理员控制服务器的资源使用,避免因为大量恶意请求而导致服务器崩溃。 一、...

    Nginx高性能WEB 5万并发连接数秘笈

    Nginx高性能WEB 5万并发连接数秘笈

    nginx与apache限制ip并发访问 限制ip连接的设置方法

    nginx nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量 1.添加limit_zone 这个变量只能在http使用 vi /usr/local/nginx/conf/nginx.conf limit_zone one $binary_remote_addr 10m; 2.添加limit_conn 这...

    Nginx限制IP并发数与下载速度的方法

    nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量 1,添加limit_zone 这个变量只能在http使用  代码示例: 代码如下:vi /usr/local/nginx/conf/nginx.conflimit_zone one $remote_addr 10m; 2,添加...

    nginx1.24.0,包含GCC/zlib/prce依赖

    Nginx 是一款高性能、轻量级的 Web 服务器/反向代理服务器,以其高并发处理能力、低内存消耗以及模块化的架构而备受青睐。在1.24.0版本中,Nginx 为用户提供了一系列优化和新功能,使其在处理动态内容、静态内容和流...

    优化nginx大并发——轻松应对上万并发访问

    总结来说,优化Nginx以应对大并发访问,不仅需要对系统参数进行调整,还要对Nginx的配置进行精细控制,通过合理的进程管理、网络连接处理和资源分配策略,实现高效且稳定的高并发服务。同时,持续的压力测试和性能...

    nginx限制并发连接请求数的方法

    简介 限制并发连接数的模块为:http_limit_conn_module,地址:...限制并发连接数 示例配置: http { limit_conn_zone $binary_remote_addr zone=addr:10m; #l

    Nginx服务器限制IP访问的各种情况全解析

    4. 限制IP并发连接数:HttpLimitConnModule模块是通过limit_conn指令对并发连接数进行限制,例如限制每个IP地址只能有20个并发连接。 5. allow和deny的使用:Nginx配置文件中可以通过allow和deny指令定义IP访问控制...

    Nginx服务器中限制连接数与限制请求的模块配置教程

    在Nginx服务器中,管理和优化并发连接数以及限制恶意请求是确保系统稳定性和资源有效利用的关键措施。本文将深入探讨如何使用Nginx的ngx_http_limit_conn_module和ngx_http_limit_req_module模块来实现这两个目标。 ...

    nginx优化 突破十万并发

    在探讨如何通过Nginx优化来突破十万并发之前,我们需要先了解Nginx的基本概念以及它的工作原理。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。相比于Apache,Nginx使用了异步非阻塞的...

    Nginx服务器限制访问速度的配置方法

    投入运营会有限制附件下限速度,限制每个用户的访问速度,限制每个IP的链接速度等需求。 刚遇到一个Bug在网络很卡的情况下才能重现,本地调试访问本机速度太快,配置Nginx成功达到限速目的,在此分享出来。 配置简单...

    Nginx 如何限制访问频率,下载速率和并发连接数的方法

    通过示例代码,我们可以看到如何使用limit_req_zone来限制访问频率,使用limit_conn来限制并发连接数,以及如何使用limit_rate和limit_rate_after来控制下载速度。 例如,限制访问频率可以配置为: ``` limit_req_...

    Nginx限制某个IP同一时间段的访问次数和请求数示例代码

    此外,你还可以设定多个 `limit_conn` 指令,以限制不同层级的连接数,例如限制每个 IP 地址与服务器的总连接数,以及与虚拟服务器的总连接数: ```nginx http { limit_conn_zone $binary_remote_addr zone=perip:...

    docker下载nginx镜像并配置,然后通过公网ip访问

    实验环境: 一台Liunx服务器(内网可也以) ...执行命令: docker pull nginx //从docker自带的源把...docker run -itd --name nginx -p 5555:80 nginx //运行刚刚下载nginx的镜像,现在这个镜像是一个容器。修改name为

    nginx 网站放在c://www//root

    Nginx (engine x) 是一个高性能的HTTP和反向...其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Global site tag (gtag.js) - Google Analytics