• nginx重新整理——————http请求的11个阶段中的preaccess[十四]


    前言

    简单整理一下preaccess。

    正文

    主要是介绍一下上文提及到的limit_req以及limit_conn。

    里面是http_limit_conn_module 默认编译进去。

    生效范围:

    1. 全部的workder 进程

    2. 进入preaccess 阶段前不生效

    3. 限制的有效性取决于key的设计: 依赖postread 阶段的realip模块取到真实的ip。

    limit_conn 指令:

    syntax : limit_conn_zone key zone=name:size;
    default: 无
    context: http

    限制并发连接数:
    syntax: limit_conn zone number
    default: --
    Context: http,server,location

    限制发生时的日志级别:
    syntax: limit_conn_log_level info|notice|warn|error;
    default: error
    Context: http,server,location

    限制发生时向客户端返回的错误码

    syntax: limit_conn_status code;
    default: limit_conn_status 503;
    context:" http,server,location

    例子:

    这里limit_conn_zone 可以看到名字为addr,然后key 是addr,分配了10m的内存空间。

    limit_conn_status 表示限制的时候返回500。 limit_conn_log_level 错误等级设置为警告。

    然后limit_rate 表示了限制速率为50字节每秒。那么limit_conn addr 1;,表示使用addr 这个配置,并且并发数量设置为1。

    那么访问一下。

    因为这里限制了连接数为1,且是50k,那么其实只有开两个终端,那么一定有一个会返回500的。

    那么如何限制每个客户端每秒请求处理的请求数量?

    生效阶段 ngx_http_preaccess_pathase 阶段

    模块: http_limit_req_module

    默认编译金nginx,通过--without-http_limit_req_module 禁用功能
    生效算法: leaky bucket 算法

    生效范围:

    1. 全部worker 进程
    2. 进入preaccess阶段前不生效

    syntax: limit_req_zone key zone=name:size rate=rate;

    context http

    限制并发连接数:

    syntax: limit_req zone=name [burst=namber] [nodelay];
    context: http server location

    syntax: limit_req_log_level info|notice|warn|error;
    default: limit_req_log_level error;
    context: http,server,location

    限制发生时向客户端返回的错误码:

    syntax: limit_red_status code
    default: limit_red_status 503;
    context: http,server,location
    例子:

    这里限制了,每分钟请求两次。

    然后可以设置一下burst 这个同的大小。

    这里加了一个burst=3 nodelay,那么就可以额外请求3个,但是这个额外的3个优先级较低,如果有其他的用户访问,那么会处理其他的。

    如果把nodelay去掉,不会立马出现错误,那么就会出现等待。

    下一节access 阶段。

  • 相关阅读:
    【Java123】enum枚举及其应用
    sql查询优化_慢查询
    9.4 如何实现属性可修改的函数装饰器?
    9.2 如何为被装饰的函数保存元数据?
    python的如何通过实例方法名字的字符串调用方法?
    9.1 如何使用函数装饰器 用装饰器解决重复计算问题
    asyncio 笔记
    python笔记截图
    list绑定
    表单数据交互
  • 原文地址:https://www.cnblogs.com/aoximin/p/16218634.html
Copyright © 2020-2023  润新知