вт, 6 окт. 2020 г. в 15:45, Evgeniy Berdnikov <b...@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
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru