gpt4 book ai didi

perl - 如何为 Perl Web 服务实现服务器端速率限制?

转载 作者:行者123 更新时间:2023-12-04 23:11:21 26 4
gpt4 key购买 nike

我有一个基于 Perl 的 CGI/Fast CGI web 服务,并希望通过 IP 地址对客户端进行速率限制,以阻止激进的客户端导致过多的工作。

我四处寻找一些代码,发现 Algorithm::TokenBucket在 CPAN 中,但这是针对客户端请求的;它没有持久性,也没有每个用户的配置,因此对于服务器端速率限制并不是很有用。

我正在为已经存在的东西寻找建议,否则我需要根据一些简单的持久性来推出我自己的建议,例如与 DB_File 相关联。每个 IP 地址和一些执行 token 管理的批处理作业。

最佳答案

我用过 Cache::FastMmap通过跟踪每个 IP 地址的命中来限制速率。这是一个缓存,因此数据会随着时间的推移而过期,但是如果您将大小和过期时间设置正确,这应该不是问题。

IP 地址是哈希键,哈希值是时间戳数组。我有第二个数据结构(也由 Cache::FastMMap 支持),它是被禁止的 IP 地址的哈希,根据第一个结构中的数据进行更新。

关于perl - 如何为 Perl Web 服务实现服务器端速率限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/501405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com