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