a client request body is buffered to a temporary file
Maxim Dounin
mdounin на mdounin.ru
Чт Июл 26 12:40:04 UTC 2018
Hello!
On Thu, Jul 26, 2018 at 08:57:17AM +0300, Vladimir Sopot wrote:
> Спасибо, настроили $content_length. Стало ещё страннее. При настройках
>
> client_max_body_size 100m;
> client_body_buffer_size 100m;
> client_body_in_file_only off;
>
> клиенты делает POST c $content_length=61554, 566069 и тд
> (немного, совсем мало) и в логе та же самая ошибка. Между этими
> двумя $content_length=6849049 прошёл без ошибок
Для начала - смотреть внимательно на то,
1) где обрабатывается запрос и действительно ли в соответствующем
контексте, где происходит чтения тела запроса, указано
"client_body_buffer_size 100m", а тело запроса при этом меньше;
2) что именно написано в сообщении. Про "buffered to a
temporary file" много похожих сообщений - в частности, оно может
быть про тело ответа.
Если не прояснится - попробовать воспроизвести как минимум без
"--add-module=../ngx_cache_purge-2.3" (не понимаю, как люди
отваживаются использовать эту поделку, она при любых внутренних
изменениях в nginx'е разносит всё же), а лучше - вообще без
сторонних модулей. Если воспроизведётся - приносите подробности
(конфиг и способ вызвать warning, либо debug log полученного
warning'а).
Интересует именно ситуация, когда warning выдаётся для случая
размера запроса меньше client_body_buffer_size, такого быть не
должно.
> Бонус: время у событий в access_log-е на секунду больше, чем в
> error_log-е, запросы отловлен точно, они достаточно редкие.
Это нормально, warning логгируется в момент первой записи во
временный файл, в access log же запрос попадает после его
окончания.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru