
Можно ли настроить nginx так, чтобы он отправлял нулевые данные ответа и немедленно закрывал соединение? Я пытаюсь избежать отправки абсолютно любых исходящих данных для определенного класса входящих соединений.
Я нашел возможное решение здесьhttps://stackoverflow.com/a/17010681/68788несколько лет назад:
location /ip/ {
keepalive_timeout 0;
}
Но я не знаю, keepalive_timeout 0;
удержит ли это nginx от отправки исходящих заголовков при закрытии соединения.
Для справки: несколько месяцев назад один из моих сайтов стал целью массивной DDoS-атаки. Мне пришлось перейти на WAF (брандмауэр веб-приложений) Cloudflare, чтобы отфильтровать входящий трафик. Общий входящий + исходящий трафик увеличился на 3000%, и расходы могли быть просто ужасными.
Входящая атака продолжается до сих пор. Терабайты бесполезного трафика каждый день в течение месяцев.
Однако оказалось, что возникла неожиданная проблема с прокси-сервером WAF от Cloudflare, из-за которой некоторые части моего сервиса не работают правильно. (Для этого вопроса подробности не имеют значения. Я уже несколько недель копаюсь в этой кроличьей норе, и проблема в том, как Cloudflare терминирует трафик ipv4 и ipv6.)
Теперь я думаю, что мне, возможно, придется развернуть другое решение, чтобы исправить службу. Я мог бы справиться с этим, если бы я мог заставить nginx отправлять абсолютно нулевые исходящие данные для класса входящих соединений, на которые я нацеливаюсь. Основная цель — иметь 0 исходящих затрат на передачу данных для завершения входящих соединений, которые я отфильтровываю.
Будем признательны за любую помощь.
решение1
Использоватьвозвращаться444;
Из документации:
Останавливает обработку и возвращает указанный код клиенту. Нестандартный код 444 закрывает соединение без отправки заголовка ответа.