我正在尝试使用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不同的解决方案进行速率限制)
答案 0 :(得分:6)
查看源代码并进行测试后自我回答。
sc_gpc0_rate(<ctr>[,<table>])
这样的函数的通用版本,将新计数器的索引作为第一个参数传递。