Nginx 限制单个IP的并发连接数及对每个连接速度(限速)

使用Nginx限制单个IP的并发连接数能够减少一些采集程序或者DDOS的攻击。
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下的设置:
查找:

复制内容到剪贴板

代码:

#limit_zone  oneip  $binary_remote_addr  10m;

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

复制内容到剪贴板

代码:

limit_zone  oneip  $binary_remote_addr  10m;

,再在虚拟主机配置的server段里添加

复制内容到剪贴板

代码:

limit_conn oneip 20;

limit_conn 语句最后面的数字为单个IP的最大并发连接数。

如果是非lnmp安装的也很简单,在nginx.conf里添加上

复制内容到剪贴板

代码:

limit_zone oneip $binary_remote_addr 10m;
limit_conn oneip 20;

当然,limit_conn oneip 20; 语句也是可以添加到server 段里只针对某个虚拟主机做此限制。

限制直接在server段里限制并发数这一行下面加上limit_rate 100k;
限制每个连接速度为100K,此限制是针对单个线程,比如,我用IE下载是100K,当用迅雷时它会占用2个线程,所以迅雷下载速度为200K,如果单个IP的并发数设置为20,则多线程下载的话速度可以达到100K×20。

最后重启nginx即可。

时间: 2024-11-15 15:40:59

Nginx 限制单个IP的并发连接数及对每个连接速度(限速)的相关文章

nginx控制单个ip连接数及流量控制

配置limit_conn_zone来限制并发连接数以及下载带宽 配置nginx限制流量和连接数: [[email protected] ~]# rpm -q nginx   #我这里使用1.8的nginx版本,1.2以后应该都是支持的: nginx-1.8.0-1.el6.ngx.x86_64 [[email protected] ~]# cd /etc/nginx/ [[email protected] nginx]# vim nginx.conf  #在nginx.conf里的http{}里

nginx限制某个IP同一时间段的访问次数

如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一直到宕机崩溃. cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一

[转]nginx限制某个IP同一时间段的访问次数

如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一直到宕机崩溃. cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一

使用python控制nginx禁封ip

python控制nginx禁封ip nginx中的access.log最近有大量的用户访问,怎么样屏蔽掉在一定时间段内访问次数多的ip呢? 测试准备: 两个tomcat,一个nginx做均衡负载,服务器上装有python3 python脚本 #服务器每60s循环一次,抓取到超过200次以上的ip地址写入rainbol_ip.conf文件中,重启nginx禁封生效 import time import datetime import os point = 0 while True: with op

CentOS多网卡单个ip和单个网卡多个ip的设置

一.单个网卡设置一个IP地址 1.初始状态已添加一个网卡eth0,并设置的均为自动获取IP地址,如下图所示:网卡为eth0,ip地址为10.1.249.36:为了后续实验的顺利进行,我们把NetworkManager服务关闭 chkconfig NetworkManager off service NetworkManager stop    2.在/etc/sysconfig/network-scripts下面有网卡eth0的配置信息:ifcfg-eth0,复制ifcfg-eth0 并改名为i

在Nginx下针对IP和目录限速

从Nginx配置与应用详解专题的投票结果来看,Nginx已经是目前仅次于APache和MS IIS的Web服务器.Nginx优秀的高并发支持和高效的负载均衡是我们选择它的理由.但有时我们希望它能做的更多.本文将向您介绍如何在Nginx下对IP和目录进行限速,在某种应用场景下,这也是个常见需求. Nginx可以通过HTTPLimitZoneModule和HTTPCoreModule两个目录来限速. 示例: limit_zone one $binary_remote_addr 10m;     lo

nginx 配置禁用ip地址访问

做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描.拉取.注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables . Nginx 的deny指令或者是程序来ban掉这些恶意请求. iptables 需要root权限配置 下面介绍使用nginx 来配置ip禁用 首选需要我们熟悉nginx 的deny指令 allow 语法:     allow address | CIDR | unix: | all; 默认值:     - 配置段:     http, server

php中禁止单个ip与ip段访问的代码小结

1.禁止单个IP <?php //IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown

Nginx实现基于ip的访问控制(Ngx_http_access_module模块)

Nginx实现基于ip的访问控制功能:(Ngx_http_access_module) 官方文档:http://nginx.org/en/docs/http/ngx_http_access_module.html 官方示例: The ngx_http_access_module module allows limiting access to certain client addresses.限定资源只被指定的客户端访问. Example Configuration: location / {