nginx 随机响应功能

【字号: 日期:2022-07-05浏览:24作者:雯心

问题描述

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

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

代码如下

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

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

问题解答

回答1:

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

回答2:

fine, 自己来把坑补上

nginx+lua=openresty

相关文章: