我在 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-请求过多标头应该用于速率限制目的。