Re: Непонятна работа limit_rate
Илья Шипицин
chipitsine на gmail.com
Вт Окт 6 11:11:37 UTC 2020
вт, 6 окт. 2020 г. в 15:45, Evgeniy Berdnikov <bgx на protva.ru>:
> 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 в данной конкретной ситуации, но думаю,
>
это определенный этап, который проходит каждый крупный сервис, который
отдает файлы больше чем 1Гб :)
осознание, что дефолтные настройки не очень удачные в этом месте
> что его авторы не столь тупы, чтобы не понимать: на апстриме всегда может
> найтись файл, который в буфер не влезет. При любых значениях настроечных
> параметров. Это нормальная ситуация, причём если Content-Length с апстрима
>
с одной стороны я с вами соглашусь, что дефолтное поведение не выглядит
отличным.
вероятно, если файл больше нельзя сохранять в кеш, то можно просто не
пытаться его сохранять,
а обойтись тем, что сохранено, остаток дочитать, ну или подождать
с другой стороны, вы несчастны с дефолтным поведением - ок, меняете
настройку на более комфортную вам
и живете с ней.
аргументы за "поменять жизнь вообще всем" тяжело заходят. но почему бы не
поменять ее конкретно тому,
кто несчастен с дефолтом
> пришёл, она опознаётся сразу. Поэтому обрыв передачи файла клиенту
> в таких условиях это баг, однозначно.
> --
> Eugene Berdnikov
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20201006/efc42e4a/attachment.htm>
Подробная информация о списке рассылки nginx-ru