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