zoukankan      html  css  js  c++  java
  • nginx的限流问题

    nginx的限流问题 

    http{

    limit_req_zone $binary_remote_addr zone=req_one:10m rate=100r/s;
    server
    {

    listen 8080;
    server_name localhost;
    location /server1/ {
    limit_req zone=req_one burst=10;
    }

    }
    }

    解释:

    rate=100r/s  意思是每个地址每秒只能请求100次。

    burst=10     表示 一共有10块令牌,并且每秒钟只新增1块令牌。

    可以参考以下例子:

    nginx利用limit模块设置IP并发防CC攻击
    在nginx.conf 中的http字段下面加入一如下一行
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ##平均 1r/s 每秒1个请求

    再在server下配置的主机定义文档中加入如下一行(全局就加在server下面)
    limit_req zone=one burst=8;队列模式
    limit_req zone=one burst=8 nodelay; ###不用队列 默认的突发(burst是0)

    如果只想限制php的请求,加在location下

    location ~ .php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    limit_req zone=one burst=8 nodelay;

    重加载nginx即可 nginx -s reload

    参考文档1:http://www.howtoforge.com/rate-limiting-with-nginx
    参考文档2:http://wiki.nginx.org/NginxHttpLimitReqModule

    比如nginx.conf的http段配置如下

    1. limit_req_zone $binary_remote_addr zone=req:20m rate=100r/s;
    2. limit_req zone=req burst=150;
    复制代码

    “limit_req_zone $binary_remote_addr zone=req:20m rate=100r/s;”
    相当于在nginx创建了一个检查站,名字叫req,凡是跟req相关的请求,并限定检查速率是100r/s。
    所以当使用“limit_req zone=req
    burst=150;”指定某些请求需要经过req的时候,请求的速率就被限制为100r/s。日志验证了这点。

    然后就是burst=150了。这相当于在检查站req旁边放150个座位。如果某个请求当时超过速度限制被拦了,请他在空座位上坐着,等排队,如果检查站空了,就可以通过。如果连座位都坐满了,那就抱歉了,请求直接退回,客户端得到一个服务器忙的响应。所以说burst跟request_rate一点关系都没有,设成10000,就是1万个请求可以等着排队,而检查站还是1秒钟放行100个请求(龟速)。而且也不能一直排队,所以nginx还设了超时,排队超过一定时间,也是直接退回,返回服务器忙的响应。

    转载:https://www.cnblogs.com/gradven/p/4962982.html

    当一个人在成长过程中,慢慢的享受学习,那么这个人就在成长,在往自己目标的方向奔跑.
  • 相关阅读:
    [转]char、varchar、nchar、nvarchar的区别
    【转】Asp.net 2.0中页的生存周期(Lifecycle)和动态控件 [.Net]
    git免登录sshkey
    ios8,xcode6 周边
    iOS 推送证书
    Lazarus中TreeView导出XML以及XML导入TreeView
    flac文件提取专辑封面手记
    Lazarus解决含中文文件名或路径的使用问题
    使用PowerShell管理Windows8应用
    thbgm拆包【in progress】
  • 原文地址:https://www.cnblogs.com/zique/p/8134096.html
Copyright © 2011-2022 走看看