nginx如何设计防御大规模 CC 攻击的分布式限流方案,需支持动态规则更新

提问者:帅平 问题分类:运维
nginx如何设计防御大规模 CC 攻击的分布式限流方案,需支持动态规则更新
1 个回答
渡不过的奈何桥
渡不过的奈何桥
分布式限流(Redis集群):
limit_req_zone $binary_remote_addr zone=global_limit:10m rate=100r/s;
limit_req zone=global_limit burst=200 delay=10;
动态规则API:
location /api/limit_rules {
    # 接受JSON格式规则更新
    proxy_pass http://rule_engine;
    # 实时加载新规则
    nginx -s reload && lua_shared_dict limit_rules 10m;
}
Lua动态过滤:
access_by_lua_block {
    local rules = ngx.shared.limit_rules
    local ip = ngx.var.remote_addr
    if rules:get(ip) == "block" then
        ngx.exit(444)
    end
}
发布于:5天前 IP属地:四川省
我来回答