Re: Непонятна работа limit_rate

Evgeniy Berdnikov bgx на protva.ru
Вт Окт 6 10:45:01 UTC 2020


On Tue, Oct 06, 2020 at 03:21:14PM +0500, Илья Шипицин wrote:
>       Наличие лимита на размер временного файла это что, повод обрывать
>      закачку?
> 
>    вы отдаете проксируемый контент по мере чтения.
>    статус 200 вы отдаете практически сразу.
>    поэтому клиент видит 200.
>    потом вы начинаете вычитывать ответ, и постепенно отдавать клиенту.
>    это регулируется (на выбор)
>    proxy_buffering (по умолчанию включено)
>    X-Accel-Buffering (можно отдать с апстрима)
>    proxy_max_temp_file_size (по  умолчанию 1Гб)
>    если вы с апстрима вычитываете на wire speed, а отдаете в узную дырочку,
>    то все шансы, что ответ попытается сбуферизоваться.
>    и это у него получится вплоть до размера 1Гб
>    а дальше - вы уже отдали (в сторону клиента) 200. поменять уже не можете.

 А с чего бы статус менять? Не влез ответ в буфер -- положили на это болт
 (можно удалить файл из буфера, etc) и продолжаем отдавать клиенту дальше.

>    это дефолтные настройки. их не меняют с целью сохранения совместимости
>    (вдруг кто-то от них зависит).
>    предполагается ответственный подход. если вы несчастливы с дефолтными
>    настройками - читаете документацию, меняете на нужные.

 Не знаю, как ведёт себя nginx в данной конкретной ситуации, но думаю,
 что его авторы не столь тупы, чтобы не понимать: на апстриме всегда может
 найтись файл, который в буфер не влезет. При любых значениях настроечных
 параметров. Это нормальная ситуация, причём если Content-Length с апстрима
 пришёл, она опознаётся сразу. Поэтому обрыв передачи файла клиенту
 в таких условиях это баг, однозначно.
-- 
 Eugene Berdnikov


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