Lighttpd

每個目錄的 lighttpd 速率限制

  • August 12, 2013

我正在創建一個包含大量小工具的站點。一個是使用 Python cgi 腳本的工具,該腳本與自然語言工具包 (nltk) 互動,它是磁碟和 CPU 密集型的。我還有其他不那麼密集的服務。

在客戶端,這些速率受限於 JavaScript 節流。創建機器人的惡意或愚蠢的使用者可以直接建立連接。我想在盡可能低的級別上防止這種情況,但我需要它是每個目錄的(cgi 腳本位於 index.html 文件旁邊)。

我還將有一個防火牆來阻止濫用 IP 發出顯赫請求。我希望它返回一個簡單的 429 響應,其中包含一個空的 JSON 對像作為正文。

我還想在其中包含其他規則,例如 30 秒的接收到傳輸時間,否則關閉連接。

如何在 Debian 的 lighttpd 伺服器中實現這一點?

要直接回答您的問題,請查看 Lighttpd 的ModEvasiveTraffic Shaping

作為替代方案/除了您提到的內容之外,您應該能夠使用 iptables 規則限制每秒連接數。

最後,考慮使用某種應用程序(消息)隊列機制。這樣,無論您向 Web 界面/api 端點收到多少請求,隊列都將確保同時執行所需數量的並行 nltk 任務。

引用自:https://serverfault.com/questions/530156