nginx分布式限流(令牌桶+redis+openresty/lua)

  • 纯纯脚本小子🤥

实现多nginx实例 分布式限流

nginx需要编译lua解释器 百度一大堆教程 或者简单点直接用openresty,它集成了lua和nginx;这个demo就是用的openresty

1、nginx指定lua脚本路径

worker_processes 1;
events {
    worker_connections 1024;
}
http {
    server{
        listen 80;
        location /sss/ {
            access_by lua file "C:/Users/Administrator/
Desktop/openresty-1.21.4.2-win64/rule_2.lua";
            proxy_pass https://www.baidu.com/;
        }
    }
}

2、脚本 rule_2.lua

-- 其实这两个值可以从redis取  甚至可以给每个qrcode设置单独的速率和容积
-- 但如果想监听桶的状态  需要持续的请求, 只有每次请求后才重新计算并更新桶状态 否则桶状态不变
local tokens_per_second = 0.2  -- 生成速率 /s
local max_tokens = 10  -- 最大溶剂

local current_time = ngx.now()
local path =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值