- 纯纯脚本小子🤥
实现多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 =