HAProxy通用计数器和棒表

mlr*_*mlr 4 load-balancing haproxy rate-limiting

我正在尝试使用HAProxy进行速率限制.我需要跟踪几个端点并单独限制它们.到目前为止,我使用的是通用计数器.但是,只有3个,sc0到sc2.

在文档中,它提到这些计数器上的所有操作都采用可选的表参数,但是,如果我可以跟踪不同表上的不同内容,但使用相同的计数器,则不清楚.

换句话说:全局或每个粘性表是3个通用计数器的限制吗?

如果经过适当的表格定义和跟踪指令,我会这样做

sc1_inc_gpc0(table1)

(并且,在不同的条件下)

sc1_inc_gpc0(table2)

然后有2个acl规则 acl X sc1_get_gpc0(table1) gt 1 acl Y sc1_get_gpc0(table2) gt 1

这两个人acl是否会独立工作,或者他们会对所有效果进行同样的反击?

谢谢大家的帮助!(如果您想知道:由于多种原因,目前我无法使用与HAProxy不同的解决方案进行速率限制)

mlr*_*mlr 7

在查看源代码和测试后自我回答.

  • 是的,可以在不同的表上使用相同的计数器
  • 此外,您还可以在构建时增加可用计数器的数量.默认值为3,但可以设置为10.然后sc_gpc0_rate(<ctr>[,<table>])可以使用类似函数的泛型版本,将新计数器的索引作为第一个参数传递.