• Nginx分片限流实现


    一、全局限流

     在http节点中添加

     # 创建限流规则
        limit_req_zone $binary_remote_addr zone=addr:10m rate=1r/s;# 客户端进行限流
        # limit_req_zone $server_name zone=addr:10m rate=1r/s; # 服务端进行限流
        server {
            # 监听端口默认是80
            listen 80;
    
            # 服务器ip或域名
            server_name 192.168.140.130;
             location / {
                 limit_req zone=addr burst=1 nodelay;
                 proxy_pass http://xiaohemiao;
    
             }
        }
    
        upstream xiaohemiao {
    
    
            server 192.168.140.130:7777; # 应用端口7777
            server 192.168.140.130:8888; # 应用端口8888
        }
    • $binary_remote_addr 针对客户端ip限流;
    • $server_name 针对服务端进行限流
    • zone=ip_limit:10m 限流规则名称为ip_limit,允许使用10MB的内存空间来记录ip对应的限流状态;
    • rate=1r/s 限流速度为每秒1次请求
    • burst为允许缓存的速率数量进行排队
    • nodelay为不需要等待排队

    二、自定义限流

    比如只对登录进行限流,假设登录接口名为login

    location = /login {
                 limit_req zone=addr burst=1 nodelay;
                 proxy_pass http://xiaohemiao;
    
             }

    在配置中需要注意的一点是location匹配规则和优先级

    = 开头表示精确匹配

    ^~ 开头表示url以某个常规字符串开头,不是正则匹配

    ~ 表示区分大小写的匹配

    ~* 开头表示不区分大小写的正则匹配

    / 通配匹配,如果没有其他匹配,任何请求都会匹配到

  • 相关阅读:
    区间DP中的环形DP
    hdu 5251 包围点集最小矩形 ***
    hdu 4858 水题
    hdu 3530 单调队列 **
    hdu 3338 最大流 ****
    hdu 2732 最大流 **
    hdu 5233 离散化 **
    hdu 3555 数位dp *
    zoj 3469 区间dp **
    2015 安徽程序设计省赛总结
  • 原文地址:https://www.cnblogs.com/sportsky/p/16293870.html
Copyright © 2020-2023  润新知