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 mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru