Apache-Httpd
使用負載均衡器而不是 Apache 來限制來自特定 IP 的事務
我在負載均衡器後面有兩個 Apache 實例,我將請求傳輸到這些實例,具體取決於請求類型。
現在我想要的是:當我從一個 IP 地址獲得太多交易時,我想阻止該 IP 幾秒鐘,然後向客戶端發送一些您發送了太多請求的響應。
所以現在的問題是:有什麼方法可以在我的負載均衡器上處理這種情況,而不是呼叫我的實例。
我如何在 Apache 上處理這個問題?我正在使用 Apache 2.2 版。
我建議你在 Apache 中設置 mod_evasive。
mod_evasive 是 Apache 的一個規避策略模組,可在 HTTP DoS 攻擊或蠻力攻擊的情況下提供規避動作。它還被設計為檢測和網路管理工具,可以輕鬆配置為與 ipchains、防火牆、路由器等通信。mod_evasive 目前通過電子郵件和系統日誌工具報告濫用行為。
在 Debian 中安裝它:
apt-get install libapache2-mod-evasive
然後編輯 mods-available/evasive.conf。您的值可能會有所不同,具體取決於您在伺服器上擁有的虛擬主機數量。
<IfModule mod_evasive20.c> DOSHashTableSize 2048 DOSPageCount 50 <---- visites to site in the given time DOSSiteCount 500 <---- to pages DOSPageInterval 2.0 <---- 2 seconds DOSSiteInterval 1.0 DOSBlockingPeriod 600.0 <--- seconds DOSLogDir /var/log/apache2/evasive DOSWhitelist 127.0.0.1 DOSWhitelist x.x.x.* </IfModule>
要啟用新
mod_evasive
配置,您必須重新啟動 Apache。您可能還對CloudFlare或 Amazon CloudFront等商業服務感興趣。