HAProxy - http_req_rate

HAProxy - http_req_rate

我已经阅读了 HAProxy博客文章关于 DDoS 保护。

在关于限制请求率他们正在描述一个例子,将限制设置为 100 以获得每秒 10 次的检测。

进行这种选择有什么理由吗? 10 的限制和 1s 周期不会产生同样的效果吗?或者有什么需要考虑的:

backend per_ip_rates
    stick-table type ip size 1m expire 10m store http_req_rate(1s)

http-request deny deny_status 429 if { sc_http_req_rate(0) gt 10 }

答案1

自然浏览(即由人浏览)可以产生大量的连接。例如,如果您加载一个网页,加上该网页上的图片、CSS 和一些 JavaScript,那么您可以在一秒钟内快速获得 10 个连接。

人们加载主页/登录页面然后在几秒钟内点击第二个页面也是合理的。

然而,自然人不太可能在较长时间内持续产生流量——他们不会一页一页地点击无限地

持续流量通常将自动流量与自然浏览带来的偶尔爆发区分开来。

换句话说,平均周期越长,您就越能确信超过“每秒连接数”阈值的流量是自动化的结果。

但是,选择较长的周期并非没有缺点 - 较长的周期意味着对表的内存要求更高,响应时间更慢。选择是对这些因素的平衡。

一旦您选择了平均的时间段,就需要保守地设置连接数,以便您不会捕获(即阻止)自然浏览。

相关内容