是否可以将 nginx 配置为发送零响应数据并立即关闭连接?

是否可以将 nginx 配置为发送零响应数据并立即关闭连接?

是否可以将 nginx 配置为发送零响应数据并立即关闭连接?我试图避免为某一类入站连接发送任何出站数据。

我在这里找到了一个可能的解决方案https://stackoverflow.com/a/17010681/68788几年前:

location /ip/ {
    keepalive_timeout 0;
}

但我不知道当keepalive_timeout 0;nginx 关闭连接时它是否会继续发送出站标头。

背景是这样的,几个月前,我的一个网站成为大规模 DDoS 攻击的目标。我不得不切换到 Cloudflare 的 WAF(Web 应用程序防火墙),以便过滤掉入侵流量。总入站 + 出站流量增加了 3000%,成本可能相当高昂。

入站攻击仍在继续。几个月来,每天都有数 TB 的无用流量。

但事实证明,Cloudflare 的 WAF 代理存在一个意外问题,导致我的部分服务无法正常运行。(这个问题的细节并不重要。我已经在这个兔子洞里呆了好几个星期,这与 Cloudflare 如何终止 ipv4 和 ipv6 流量有关。)

现在,我想我可能需要推出不同的解决方案来修复该服务。如果我可以让 nginx 为我所针对的入站连接类别发送绝对零出站数据,我可能能够做到这一点。主要目标是在终止我过滤掉的入站连接时,出站数据传输成本为零。

感谢任何帮助。

答案1

使用返回444;

来自文档:

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

相关内容