Nginx reverse proxy: Какое влияние proxy_buffering на производительность на больших файлах и медленном апстриме?
Документация говорит о том, что когда proxy_buffering выключен - клиентам высылается ответ от бакенд-сервера одновременно с его получением, а когда включен - ответ вычитывается в буферы, и при необходимости пишется в файл, и только потом отправляется клиенту.
В случае, если у нас "медленный, но большой" бакенд (большое хранилище на обычных дисках) - хочется конечно отдавать клиенту данные одновременно с получением, чтобы минимизировать задержку для клиента.
Однако на практике при тестировании на 100Мб файлах и медленной сети (2мб/сек и бакенд, и клиенты)- возникает ощущение, что nginx сливает данные клиенту по мере загрузки с бакенда даже при включенном proxy_buffering.
Тут неточность в документации, или поведение nginx более сложное? Правильно ли я понимаю, что если nginx начинает отдавать данные клиентам сразу, то выключать proxy_buffering смысла нет?
Буферы ж не 100Мб, он заполнил буфер - и отправляет его, а пока заполняет следующий. Смотри документацию nginx по proxy_buffering и ниже опции читай, там и количество и размер буферов задавать можно.