HAProxy:根据 HTTP 标头字段限制并发连接数

HAProxy:根据 HTTP 标头字段限制并发连接数

我尝试使用基于 HTTP 标头字段的 HAProxy 粘表来限制并发连接数。我可以找到大量使用 IP 地址的示例,但这对我而言不起作用。我们的应用程序仅根据 HTTP 标头字段 x-account 区分用户帐户,并期望同时收到来自多个 IP 的请求。

目前我无法提供任何错误消息或任何内容,因为我目前无法理解配置。因此,这是一个关于 HAProxy 的使用/配置的非常基本的问题。

根据我阅读 HAProxy 文档后的理解:

我对 stick-table 的定义如下:

stick-table type string size 100m store conn_cur

这应该为我提供一个表来存储我的标题字段。我没有添加过期时间,因为我实际上不太在意,而且这些值无论如何都会高度重复。另外,不要期望超过 5K-10K 个条目,即不同的帐户。

到目前为止,文档非常清楚,但从这里开始我的麻烦就开始了。我想我需要一行来告诉 HAProxy 它应该将标头字段的值与连接关联并报告它已打开并最终关闭。这可能是这样的吗?

stick store-request hdr(x-account) account_table

然后必须有一行代码,如果超出此用户的最大会话数,则拒绝/阻止该请求。我猜是这样的:

http-request tarpit if hdr(x-account) account_table gt 10

至少这是我所期望的,但我可能完全错了。正如我之前所说,我找不到在 stick-table 中使用字符串的任何示例。如果有帮助,我可以提供完整的 HAProxy 配置,但我认为这并不相关,因为这只是前端定义的一部分,对吗?

任何帮助都将受到赞赏。

干杯,拉尔夫

相关内容