nginx 随机响应功能
我想大声告诉你
我想大声告诉你 2017-05-16 17:25:34
0
2
510

客户端跟服务器端交互时,出现了一个失误的定时设计,造成服务器端10分钟内接收到超过30万次请求,php后端瞬间的压力暴增而崩溃。

目前的解决方案时,由于短时间内的重复请求获取的内容都是相同的,在Nginx层直接将有特殊参数的请求给drop掉,直接返回无结果。

代码如下

shell    if ( $query_string ~ "api=(getpush|remove)")
    {
        return 200 '{"resultStatus":1,"allCount":0,"data":[]}';
        break;
    }

这个解决方案不完善的地方,比如只禁掉90%的请求,或者只在指定时间内生效,不知道有没有同学有没有类似的防攻击解决方案?

我想大声告诉你
我想大声告诉你

全部回复(2)
我想大声告诉你

可以考虑用一个upstream,设定一个权重,把90%的请求转移到一个dummy的接口上

伊谢尔伦

fine, 自己来把坑补上

nginx+lua=openresty

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板