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{}里加上相关代码:

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    access_log  /var/log/nginx/access.log  main;
    
#配置区域名称为perip,需要写在http里面;
limit_conn_zone $binary_remote_addr zone=perip:10m;  

....后面省略
}

[[email protected] nginx]# cd conf.d/

[[email protected] conf.d]# vim default.conf  #在相关需要限制的server{}里加上相关代码:

server {
    listen       80;
    server_name  localhost;
    #charset koi8-r;
    access_log  /var/log/nginx/log/host.access.log  main;
    
    limit_conn  perip 10;  #这里调用上面的perip,需要写在server里面;
    limit_rate 100k;  #限制每个连接的带宽,可以单独写这条,与连接数无关;
    
...........后面省略
}

补充说明下参数:

  • $binary_remote_addr是限制同一客户端ip地址;
  • $server_name是限制同一server最大并发数;
  • limit_conn为限制并发连接数;
  • limit_rate为限制下载速度;

测试1000个并发:

[[email protected] nginx]# ab -kc 1000 -n 1000 http://192.168.10.65/index.php

Concurrency Level:      1000   #并发级别
Time taken for tests:   1.220 seconds   #测试时间
Complete requests:      1000   #完成请求
Failed requests:        947    #失败的请求
   (Connect: 0, Receive: 0, Length: 947, Exceptions: 0)
Write errors:           0
Non-2xx responses:      1000
Keep-Alive requests:    947
Total transferred:      714754 bytes
HTML transferred:       518715 bytes
Requests per second:    819.75 [#/sec] (mean)
Time per request:       1219.889 [ms] (mean)
Time per request:       1.220 [ms] (mean, across all concurrent requests)
Transfer rate:          572.18 [Kbytes/sec] received

流量测试暂时不知道要怎么测试;

时间: 2024-10-15 08:33:48

nginx控制单个ip连接数及流量控制的相关文章

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

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

今天有个人问我,nginx怎么限制ip连接数,突然想不起来了,年龄大了,脑子不怎么好使了.还要看一下配置才想起了.那个人又问我,你测试过的吗?一下子把我问蒙了,我真没测试过了,也不知道启作用了没有. 1,配置nginx.conf  代码如下 复制代码 http{.............limit_zone   one  $binary_remote_addr  10m;  //我记得默认配置就有,只不过是注释掉了,如果没有加一下.............. server{ ..........

使用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

使用nginx和iptables做访问权限控制(IP和MAC)

之前配置的服务器,相当于对整个内网都是公开的 而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直接ip地址加端口访问对应服务 这是不对的啊,所以我们要做一些限制 因为只是对特定的人提供服务,而且局域网IP和MAC都是固定的,所以可以直接用白名单,其他的全部拒绝 /**************************************使用nginx做访问权限控制*********************************/ 先在nginx做设置 在/et

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在同一

查看服务器IP连接数

1.查看服务器IP连接数: netstat -tun | awk '{print $5}' | cut -d: -f1 |sort | uniq -c | sort -nr 2.查看nginx日志一天访问量最多的前10位IP zcat access_nginx.api130.log.20160518.16.gz | awk '{print $1}' | sort | uniq -c | sort -nr -k1 |less

在Nginx下针对IP和目录限速

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

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