我正在尝试通过HA Proxy实施API速率限制。在我们的组织中,我们使用的是HA Proxy社区版,并且配置了多个HA Proxy节点。任何请求都将重定向到HA代理节点中的任何一个。
我在每个HA代理节点上定义了一个棍子表来存储API密钥计数。
backend apikey-rate-limiting
stick-table type string len 32 size 5k expire 1s store http_req_rate(2s)
我通过以下配置在节点级别实现了API密钥速率限制。
acl p1_req_exceeds_limit sc_http_req_rate(0) gt 400
http-request track-sc0 req.hdr(x-api-key) table apikey-rate-limiting
http-request deny deny_status 429 if p1_req_exceeds_limit
此配置在节点级别工作,但是我们希望在全局级别实现。我们需要在每个节点上汇总stick table的值,并拒绝该节点上汇总值中的API请求。请让我知道您对我需要遵循的方法的想法。