Re: Проксирование, буфер, лаги
Maxim Dounin
mdounin на mdounin.ru
Ср Авг 7 17:48:19 UTC 2019
Hello!
On Wed, Aug 07, 2019 at 12:56:18PM -0400, rihad wrote:
> Просто эта цитата в доках на английском говорит, что такое бывает при
> выключенном буферинге.
Приведённая цитата говорит, что бывает при _выключенной_
буферизации. Что бывает при включённой - написано в предыдущем
абзаце.
Принципиальный момент, на самом деле, приблизительно один:
- В случае выключенной буферизации отправка будет происходить
сразу после получения данных от бэкенда. Включая сброс буферов
всяких других уровней, как то gzip или SSL. Если же буферизация
включена - nginx будет ждать заполнения очередного буфера, и
только после его заполнения будет пытаться отправить его
содержимое клиенту. Поэтому буферизированное проксирование
эффективнее, но может быть непригодно, если HTTP-ответы
используются для потоковой отправки данных с небольшой скоростью
(и тогда буферизацию имеет смысл отключать).
Кроме того, стоит помнить, что:
- В случае выключенной буферизации nginx не будет пытаться
прочитать целиком ответ от бэкенда, а вместо этого прекратит
чтение, как только у него закончится буфер и не будет
возможности отправить содержимое этого буфера клиенту. В случае
со включённой буферизацией - похожего поведения можно
добиться, установив proxy_max_temp_file_size в 0 (с точностью до
того, что при этом будет используется не один буфер, а много).
- При выключенной буферизации невозможно сохранения ответа на
диск, и соответственно не будет работать кэширование и
proxy_store.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru