网站地图

nginx return 444状态

创建时间:2014-01-26 11:57:17最后修改:2014-01-26 11:57:17

晚上服务器被人恶意请求一个文件连接,并发数非常大,导致服务器带宽爆满。

服务器用的nginx做负载均衡,首先查出来了被请求的URL,然后马上写了个rewrite规则将url做了301转向,流量下降不少,但还是占用带宽非常高,然后将301转向改成了直接返回404错误,带宽还是有增不减:

if ($query_string ~ "action=download&id=93$") {
    return 404;
}
分析后发现原来返回404状态的话,nginx会返回一段错误错码和header头信息到客户端,如果是被攻击,这还是会耗费一定的流量。解决办法就是将404状态改成444,带宽直接恢复正常了:
if ($query_string ~ "action=download&id=93$") {
    return 444;
}
nginx的444状态是直接由服务器中断连接,不会向客户端再返回任何消息。