pudge (不哭,上头条)2014-11-20 11:24:28
想实现的功能是:因为外面来的http请求都是走nginx,想利用nginx的某神秘模块做监控,屏蔽掉对某个url访问频率过高的恶意用户(屏蔽ip)
kozz (FeiFeiRun)2014-11-20 12:10:32
异步脚本分析日志,动态加iptables如何?
【 在 pudge (不哭,上头条) 的大作中提到: 】
: 想实现的功能是:因为外面来的http请求都是走nginx,想利用nginx的某神秘模块做监控,屏蔽掉对某个url访问频率过高的恶意用户(屏蔽ip)
pudge (不哭,上头条)2014-11-20 12:53:27
能不能说的详细点
nginx好像本身有个模块能做这个,我是python开发的,不是特别清楚,特来求教。我看一些招聘广告,这好像是运维的事,所以也许运维的人知道怎么做。
【 在 kozz 的大作中提到: 】
: 异步脚本分析日志,动态加iptables如何?
dddhhh (滴滴滴)2014-11-20 13:55:45
Module ngx_http_limit_req_module
【 在 pudge (不哭,上头条) 的大作中提到: 】
: 想实现的功能是:因为外面来的http请求都是走nginx,想利用nginx的某神秘模块做监控,屏蔽掉对某个url访问频率过高的恶意用户(屏蔽ip)
elf (\'精灵射手\',\'猥琐大叔\')2014-11-20 14:09:52
fail2ban 根据访问日志定义一个规则
【 在 pudge (不哭,上头条) 的大作中提到: 】
: 想实现的功能是:因为外面来的http请求都是走nginx,想利用nginx的某神秘模块做监控,屏蔽掉对某个url访问频率过高的恶意用户(屏蔽ip)
elf (\'精灵射手\',\'猥琐大叔\')2014-11-20 14:14:40
原文:http://segmentfault.com/q/1010000000115949
ngx_http_limit_req_module 可以用来限制单个IP每秒请求数
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
【 在 pudge (不哭,上头条) 的大作中提到: 】
: 想实现的功能是:因为外面来的http请求都是走nginx,想利用nginx的某神秘模块做监控,屏蔽掉对某个url访问频率过高的恶意用户(屏蔽ip)
pudge (不哭,上头条)2014-11-20 15:58:47
看了,比较有用,不过还是有问题,我只想针对某个请求,比如只针对http://server_ip:port/foo/api_that_need_control,而不对http://server_ip:port/foo/api_not_matter,而这个Module ngx_http_limit_req_module所http底下的,比如:
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
...
server {
...
location /search/ {
limit_req zone=one burst=5;
}
怎么说明是对api_that_need_control监控
【 在 elf 的大作中提到: 】
: 原文:http://segmentfault.com/q/1010000000115949
elf (\'精灵射手\',\'猥琐大叔\')2014-11-20 16:14:32
fail2ban可以用正则来匹配日志内容
nginx那个模块我不太了解,你可以看一下它能否配置为针对某个location做限制
如果不能,你可以看一下它的源码看看能不能改成你想要的
【 在 pudge (不哭,上头条) 的大作中提到: 】
: 看了,比较有用,不过还是有问题,我只想针对某个请求,比如只针对http://server_ip:port/foo/api_that_need_control,而不对http://server_ip:port/foo/api_not_matter,而这个Module ngx_http_limit_req_module所http底下的,比如:
pudge (不哭,上头条)2014-11-20 16:56:45
更新iptables还得重启网卡,多麻烦
【 在 kozz 的大作中提到: 】
: 异步脚本分析日志,动态加iptables如何?
stid (猫王)2014-11-20 17:03:19
谁说要重启网卡?
【 在 pudge (不哭,上头条) 的大作中提到: 】
: 更新iptables还得重启网卡,多麻烦
elf (\'精灵射手\',\'猥琐大叔\')2014-11-20 17:14:29
那就是fail2ban实现的功能
【 在 kozz (FeiFeiRun) 的大作中提到: 】
: 异步脚本分析日志,动态加iptables如何?
nabice (葱油饼)2014-11-20 17:21:24
我是用定时任务扫描日志, 配合iptables来搞的。
【 在 pudge (不哭,上头条) 的大作中提到: 】
: 想实现的功能是:因为外面来的http请求都是走nginx,想利用nginx的某神秘模块做监控,屏蔽掉对某个url访问频率过高的恶意用户(屏蔽ip)
fancyrabbit (fancy★摩托党★醚恋)2014-11-20 17:34:15
写好几个location....
【 在 pudge (不哭,上头条) 的大作中提到: 】
: 看了,比较有用,不过还是有问题,我只想针对某个请求,比如只针对http://server_ip:port/foo/api_that_need_control,而不对http://server_ip:port/foo/api_not_matter,而这个Module ngx_http_limit_req_module所http底下的,比如:
pudge (不哭,上头条)2014-11-20 18:35:17
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/m;
server{
location /api_need_control {
limit_req zone=one nodelay;
limit_req_status 429;
}
是不是这样写?
【 在 fancyrabbit 的大作中提到: 】
: 写好几个location....
pudge (不哭,上头条)2014-11-20 18:37:06
同事= =服务器开发多年经验
【 在 stid 的大作中提到: 】
: 谁说要重启网卡?
stid (猫王)2014-11-20 18:37:52
那你自己实践过吗
【 在 pudge (不哭,上头条) 的大作中提到: 】
: 同事= =服务器开发多年经验
pudge (不哭,上头条)2014-11-20 18:38:26
你是运维吗?还是开发?我只是想搞清楚我现在做这个nginx算哪块?
【 在 nabice 的大作中提到: 】
: 我是用定时任务扫描日志, 配合iptables来搞的。
pudge (不哭,上头条)2014-11-20 18:39:05
没有,没那个精力
【 在 stid 的大作中提到: 】
: 那你自己实践过吗
kozz (FeiFeiRun)2014-11-20 18:49:44
其实我还是觉得放在异步脚本里面处理比较好,不会影响nginx自己的性能。虽然我对这个
module的overhead,也没多少认识。。
iptables加规则不用重启网卡。不过真要用iptables的话,一旦规则变多,貌似对性能的影响就比较大。我们有次遇到个类似个场景,iptables规则加到1k多以上,同一网段ping的时间都变成十几ms了。有可能记忆有误差,仅供参考,大牛轻拍。。
【 在 pudge (不哭,上头条) 的大作中提到: 】
: 你是运维吗?还是开发?我只是想搞清楚我现在做这个nginx算哪块?
fanyeren (地下室上铺青年)2014-11-20 19:20:15
orz.... 1k多的规则
【 在 kozz (FeiFeiRun) 的大作中提到: 】
: 其实我还是觉得放在异步脚本里面处理比较好,不会影响nginx自己的性能。虽然我对这个