不知道大家碰没碰到过被一些垃圾蜘蛛爬虫采集造成服务器飙升的情况,反正明月是经常性的碰到 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、并发量、连接数等配置
nginx防并发、限制ip、连接数等配置
Nginx高性能WEB 5万并发连接数秘笈
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并发数,也是说限制同一个ip同时连接服务器的数量 1,添加limit_zone 这个变量只能在http使用 代码示例: 代码如下:vi /usr/local/nginx/conf/nginx.conflimit_zone one $remote_addr 10m; 2,添加...
vi /etc/init.d/nginx 修改nginx后 chmod +x /etc/init.d/nginx /sbin/chkconfig nginx on sudo /sbin/chkconfig --list nginx /etc/init.d/nginx start
简介 限制并发连接数的模块为:http_limit_conn_module,地址:...限制并发连接数 示例配置: http { limit_conn_zone $binary_remote_addr zone=addr:10m; #l
nginx与apache限制ip连接数和带宽方法.docx
nginx1.24.0,包含GCC/zlib/prce依赖
优化nginx大并发——轻松应对上万并发访问 优化Nginx突破十万并发 搭建web nginx服务器是网站开发必不可少的技能,学好了,给公司省大钱
nginx安装与使用 http://blog.163.com/njut_wangjian/blog/static/1657964252013327103716818/ Nginx开发从入门到精通 http://tengine.taobao.org/book/index.html nginx官网上下载相应的安装包,--- 直接解压就...
对于nginx做ip限制一些总结。
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #ExecReload=/usr/local/nginx/sbin/nginx -s ...
主要介绍了Nginx服务器中限制连接数与限制请求的模块配置教程,分别为limit conn模块与limit req模块的相关用法讲解,需要的朋友可以参考下
投入运营会有限制附件下限速度,限制每个用户的访问速度,限制每个IP的链接速度等需求。 刚遇到一个Bug在网络很卡的情况下才能重现,本地调试访问本机速度太快,配置Nginx成功达到限速目的,在此分享出来。 配置简单...
关于修改nginx-1.12.2/src/os/unix下的代码
实验环境: 一台Liunx服务器(内网可也以) ...执行命令: docker pull nginx //从docker自带的源把...docker run -itd --name nginx -p 5555:80 nginx //运行刚刚下载nginx的镜像,现在这个镜像是一个容器。修改name为