Я использую Nginx в качестве обратного прокси. При отправке бесконечного количества мусора, когда серверное приложение уже ответило на запрос (например, с некоторой ошибкой), Nginx будет терпеливо ждать, пока клиент закончит говорить, прежде чем ответить.
Я не уверен, почему Nginx вообще задерживает ответ (это двунаправленное / полнодуплексное соединение, и у него есть полностью буферизованный ответ), возможно, по какой-то причине протокола HTTP, но меня больше всего интересует, почему тайм-аут настолько велик? Зачем ждать 30 секунд, пока клиент перестанет болтать, прежде чем дать ему ответ? По какому (законному) сценарию это происходит? Я могу думать только о slowloris или других DoS-атаках.
Я могу представить, что клиент все еще отправляет заголовки, когда сервер (или сам Nginx) уже обнаружил, что IP-адрес не разрешен, поэтому вы должны позволить ему завершить отправку заголовков, но это будет не более нескольких килобайт, если у вас есть странно большое печенье. Даже по GPRS это примерно 1-2 секунды. Зачем устанавливать значение по умолчанию на 30 и позволять кому-то поддерживать соединение открытым и активным так долго, если он знает, что только тратит ресурсы ЦП?