每个目录的 lighttpd 速率限制

每个目录的 lighttpd 速率限制

我正在创建一个包含大量小工具的网站。其中一个工具使用 Python cgi 脚本与自然语言工具包 (nltk) 交互,这会占用大量磁盘和 CPU。我还有其他一些占用较少资源的服务。

在客户端,这些都通过 JavaScript 节流进行速率限制。恶意或愚蠢的用户创建机器人可以直接建立连接。我希望尽可能低地阻止这种情况,但我需要将其设置为每个目录(cgi 脚本位于 index.html 文件旁边)。

我还将安装一个防火墙,阻止滥用 IP 发出特权请求。我希望它返回一个简单的 429 响应,并以空 JSON 对象作为正文。

我还想在其中包括其他规则,比如 30 秒的接收到传输时间,否则关闭连接。

如何在 Debian 上的 lighttpd 服务器中实现此功能?

答案1

要直接回答你的问题,请查看模因规避流量整形来自 Lighttpd。

作为替代/除了您提到的内容之外,您应该能够使用 iptables 规则来限制每秒的连接数。

最后,考虑使用某种应用程序(消息)队列机制。这样,无论您向 Web 界面/API 端点发出多少请求,队列都会确保只有所需数量的并行 nltk 任务会同时运行。

相关内容