a client request body is buffered to a temporary file

Maxim Dounin mdounin на mdounin.ru
Пн Ноя 1 21:05:53 MSK 2010


Hello!

On Mon, Nov 01, 2010 at 01:28:14PM -0400, nanochelandro wrote:

> Доброго времени суток. Имеется nginx/0.8.52.
> 1) Вопросы местами избитый, я долго
> гуглил, но вразумительного ответа не
> нашёл.
> 
> [code]
> 2010/11/01 07:28:32 [warn] 4191#0: *3353 a client request body is
> buffered to a temporary file /tmp/php-uploads/38/02/00/0000000238,
> client: 192.168.0.3, server: xxxxxxxx, request: "POST /xxxxxxxx
> HTTP/1.1", host: "xxxxxxxx"
> [/code]
> 
> У многих этот варнинг связан с
> какими-то проблемами, но у меня иначе -
> варнинг есть, а проблем нет :)
> 
> [code]
> client_max_body_size 2G;
> client_body_buffer_size 128K;
> [/code]
> 
> В основном на сервер льются большие
> файлы, на практике это 100MB..1GB.
> Соответственно, этот варнинг вылазит
> на абсолютно каждом аплоаде.
> 
> Я правильно понимаю, что это просто
> предупреждение о том, что размер
> входящего аплоада больше, чем
> client_body_buffer_size?

Да.

> Ни на что более этот
> варнинг не намекает? Скрытая угроза? :)

Он как бы говорит нам, что запрос ушёл в диск, что может быть не 
самым приятным событием в жизни администратора.

Если уход в диск ожидаем в силу специфики задачи - можно смело не 
обращать внимания.

> 
> 2) И второй вопрос - почему-то не
> получается сделать client_max_body_size в server{}
> больше, чем уже есть в http{}. Например,
> хочу ограничить всем виртуалхостам
> client_max_body_size до нескольких килобайт, и
> лишь одному дать 2 гига.
> 
> [code]
> http {
>   client_max_body_size 4K;
>   ...
>   server {
>     client_max_body_size 2G;
>     ...
>   }
> }
> [/code]
> 
> А всё равно максимум везде 4K.
> Комментариев в документации не нашёл.
> Что я не так делаю?

Должно работать.

Сообщения в логах вида "[error] ... client intended to send too 
large body" наводку на правильное решение проблемы не дают?  В 
том смысле что там пишется "server: ...", и если он не 
соответствует - это повод задуматься. 

Maxim Dounin



Подробная информация о списке рассылки nginx-ru