一个关于 iptables 的问题

2015-02-21 21:09:25 +08:00
 GASALA
系统是Ubuntu12.04 64位。
前端Nginx(80),后端Apache(8080)。

网站采用wordpress搭建。

针对按F5就挂的问题,我想使用iptables去限制每个IP的最大连接数,增加了以下规则(来自于网络):

# limit 80 port IP 20
-A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j REJECT

# Log 60 seconds 20 connect
-A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 20 -j LOG --log-prefix "DDOS: " --log-ip-options

# 60 seconds 20 connect
-A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 20 -j REJECT

# Allow
-A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEPT


但这些规则最终并没有生效,长按F5就报数据库连接错误。

请各位帮忙看看问题出在哪?谢谢。
2220 次点击
所在节点    问与答
2 条回复
ryd994
2015-02-22 01:50:04 +08:00
http有长连接所以请求频率和连接频率不一定一样。用nginx limit request http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
oott123
2015-02-22 02:00:40 +08:00
针对按F5就挂的问题,你应该考虑优化你的数据库或者其它的程序对资源的占用,而不是不让人家按…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/172087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX