如何使用 NGINX 阻止洪水请求?

如何使用 NGINX 阻止洪水请求?

我在 VPS 中使用 NGINX 作为 Web 服务器,我想将其配置为阻止泛洪请求。我找到了 HttpLimitReqModule 模块,但我需要避免向用户发送回复。

我看到如果请求数高于设置,模块会返回 503 http 错误。我可以阻止向用户发送回复吗?我只需关闭连接即可。

(我认为它快得多)

谢谢

答案1

http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return

停止处理并将指定的代码返回给客户端。非标准代码 444 关闭连接而不发送响应头

http://nginx.org/en/docs/http/ngx_http_limit_req_module.html#limit_req_status

syntax: limit_req_status code;
default: limit_req_status 503;

所以limit_req_status 444;可以幫忙。

答案2

发出 HTTP 状态 444。将不会返回任何标头,并且连接将被关闭。

“444 无响应(Nginx)用于 Nginx 日志,表示服务器未向客户端返回任何信息并关闭了连接(有助于阻止恶意软件)。”

http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Server_Error

答案3

为了可靠的 Web 应用程序,请考虑使用适当的 HTTP 状态代码。

RFC 6585 第 4 部分表示HTTP 429-请求过多标头应该用于速率限制目的。

相关内容