zoukankan      html  css  js  c++  java
  • 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即可。
  • 相关阅读:
    影响Scala语言设计的因素列表
    mysql查询不区分大小写问题分析和解决
    mysql基础之三:char与varchar区别,varchar(M)能存多少
    Springboot Actuator之三:spring boot健康检查对Redis的连接检查的调整
    nginx实现带参数目录域名重定向二级域名方法
    Nginx正则表达式之匹配操作符详解
    微服务API网关 vs. 传统企业级API网关
    无法打开SQL Server的连接
    URAL 1146 Maximum Sum(最大子矩阵的和 DP)
    leetCode 70.Climbing Stairs (爬楼梯) 解题思路和方法
  • 原文地址:https://www.cnblogs.com/zhengah/p/4671215.html
Copyright © 2011-2022 走看看