応答データをゼロにしてすぐに接続を閉じるように nginx を設定できますか?

応答データをゼロにしてすぐに接続を閉じるように nginx を設定できますか?

応答データをゼロにして接続をすぐに閉じるように nginx を設定できますか? 特定のクラスの受信接続に対して、送信データを一切送信しないようにしています。

ここで解決策を見つけましたhttps://stackoverflow.com/a/17010681/68788数年前から:

location /ip/ {
    keepalive_timeout 0;
}

keepalive_timeout 0;しかし、接続を閉じたときに nginx が送信ヘッダーを送信し続けるのを止めるかどうかはわかりません。

背景を説明すると、数か月前、私のサイトの 1 つが大規模な DDoS 攻撃のターゲットになりました。侵入するトラフィックをフィルタリングできるように、Cloudflare の WAF (Web アプリケーション ファイアウォール) に切り替える必要がありました。受信トラフィックと送信トラフィックの合計は 3000% 増加し、コストはかなり高額になる可能性がありました。

インバウンド攻撃はまだ進行中です。何ヶ月もの間、毎日テラバイト単位の無駄なトラフィックが発生しています。

しかし、Cloudflare の WAF プロキシに予期しない問題が発生し、サービスの一部が正常に動作しなくなっていることが判明しました。(この質問では詳細は重要ではありません。私は何週間もその問題に取り組んできましたが、これは Cloudflare が IPv4 および IPv6 トラフィックを終了する方法に関係しています。)

今、サービスを修正するには別のソリューションを展開する必要があるかもしれないと考えています。ターゲットとする着信接続のクラスに対して、nginx が送信する送信データを完全にゼロにできれば、これを管理できるかもしれません。主な目標は、フィルタリングしている着信接続を終了するための送信データ転送コストを 0 にすることです。

ご協力いただければ幸いです。

答え1

使用戻る444;

ドキュメントより:

処理を停止し、指定されたコードをクライアントに返します。非標準コード 444 は、応答ヘッダーを送信せずに接続を閉じます。

関連情報