哪些技術和/或模塊可用於在apache中實現強健的速率限制(請求|字節/ ip /單位時間)?如何使用Apache實現速率限制? (每秒請求數)
66
A
回答
48
5
在Apache的2.4,有一個名爲mod_ratelimit有新貨模塊。爲了模擬調制解調器的速度,你可以使用mod_dialup。雖然我不明白爲什麼你不能使用mod_ratelimit做任何事情。
1
15
正如this blog後說,它似乎可以使用Apache的mod_security實現每秒的速度極限。
的配置是這樣的:
SecRuleEngine On
<LocationMatch "^/somepath">
SecAction initcol:ip=%{REMOTE_ADDR},pass,nolog
SecAction "phase:5,deprecatevar:ip.somepathcounter=1/1,pass,nolog"
SecRule IP:SOMEPATHCOUNTER "@gt 60" "phase:2,pause:300,deny,status:509,setenv:RATELIMITED,skip:1,nolog"
SecAction "phase:2,pass,setvar:ip.somepathcounter=+1,nolog"
Header always set Retry-After "10" env=RATELIMITED
</LocationMatch>
ErrorDocument 509 "Rate Limit Exceeded"
5
可悲的是,mod_evasive
將不會工作在非prefork的配置中使用時,如預期(近期的Apache設置主要是MPM)
9
有許多方式包括Web應用程序防火牆,但是如果使用Apache mod最容易實現。
我喜歡推薦的一個這樣的mod是mod_qos。這是一個免費的模塊,對於certin DOS,Bruteforce和Slowloris類型的攻擊非常有效。這會緩解你的服務器負載。
這是非常強大的。
的mod_qos模塊的當前版本實現控制機制來管理:
併發請求到位置/資源 (URL)或虛擬主機的最大數量。
限制帶寬,如每秒對URL的最大允許請求數或者每秒下載的千字節數的最大值/最小值。
限制每秒請求事件(特殊請求 條件)的數量。
- 限制請求事件在定義的時間段內的數量。
- 它還可以檢測到非常重要的人員(VIP),這些人員可能訪問 Web服務器時沒有或有較少的限制。
通用請求線和頭濾波器來拒絕未授權的 操作。
請求正文數據限制和過濾(要求mod_parp)。
限制爲單個客戶端(IP)請求事件的數量。
限制在TCP連接的水平,例如,從單一的IP源地址或動態 保活控制 允許的連接的最大數量。當服務器運行了免費的TCP連接 的
- 喜歡稱爲IP地址。
這是什麼,你可以使用它的一個示例配置。有數百種可能的配置可以滿足您的需求。訪問該網站獲取更多關於控件的信息。
Sample configuration:
# minimum request rate (bytes/sec at request reading):
QS_SrvRequestRate 120
# limits the connections for this virtual host:
QS_SrvMaxConn 800
# allows keep-alive support till the server reaches 600 connections:
QS_SrvMaxConnClose 600
# allows max 50 connections from a single ip address:
QS_SrvMaxConnPerIP 50
# disables connection restrictions for certain clients:
QS_SrvMaxConnExcludeIP 172.18.3.32
QS_SrvMaxConnExcludeIP 192.168.10.
相關問題
- 1. 如何在apache基準工具中限制每秒請求數
- 2. 速率限制GET請求
- 3. 速率限制算法限制請求
- 4. 什麼是實現Web API請求限制/速率限制的常用方式?
- 5. 速率限制如何限制API
- 6. 使用有限請求速率的API
- 7. 播放WS API:限制請求速率
- 8. Apache HttpClient:限制每秒總調用數
- 9. 如何在IBM API Management中實現多速率限制?
- 10. Graphite nginx每秒請求數
- 11. 這裏API請求每秒限制
- 12. Glassfish:限制用戶每秒/每分鐘的請求數量
- 13. NGINX每秒計數請求數
- 14. 使用ASP.NET和global.asax限制速率
- 15. 使用Reactor實現http速率限制服務重試
- 16. 每秒測量出站請求數?
- 17. 使用nftables ARP請求的速率限制
- 18. 使用Reactor的請求限制率
- 19. 分佈式速率限制
- 20. 如何限制.map循環中的請求速率?
- 21. 爲Web請求實現速率限制算法的最佳方式是什麼?
- 22. RxSwift的速率限制
- 23. 如何限制HTTP請求到每2秒
- 24. Backbone - 如何限制每秒的Ajax請求或創建隊列?
- 25. Node.js的API率多速率限制
- 26. java速率限制邏輯
- 27. API速率限制器
- 28. Locust.io:控制每秒請求參數
- 29. 是否存在每秒GAE請求限制或實例數量限制現在接收python 10060錯誤
- 30. 如何在Spring中基於客戶端令牌實現速率限制?
我使用Linux的[TC](http://www.lartc.org/howto/lartc.qdisc.classless.html#AEN690)在Web服務器上,因爲紅帽6只有Apache 2.2。 – ceving 2014-05-19 12:17:18