Re: Проксирование, буфер, лаги

2019-08-07 Пенетрантность rihad
Спасибо за ответ. Буферизация конечно включена, мне просто показалось что
желаемое поведение (одновременный прием от апстрима и отправка клиенту)
происходит только при выключенной буферизации. Размер буфера в несколько
десятков кб роли не играет, это почти одновременно. У нас в основном
картинки по несколько сот кб.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,285149,285155#msg-285155

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проксирование, буфер, лаги

2019-08-07 Пенетрантность Maxim Dounin
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 mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проксирование, буфер, лаги

2019-08-07 Пенетрантность rihad
Просто эта цитата в доках на английском говорит, что такое бывает при
выключенном буферинге.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,285149,285153#msg-285153

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проксирование, буфер, лаги

2019-08-07 Пенетрантность Andrey Kopeyko

rihad писал 2019-08-07 17:09:


Меня вот это немного смутило:

"When buffering is disabled, the response is passed to a client
synchronously, immediately as it is received. nginx will not try to 
read the

whole response from the proxied server. "

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering

Получается когда buffering включен, то наоборот, контент читается 
полностью

перед началом отдачи клиенту.


Нет.
Ответ начинает отдаваться клиенту сразу по получении его от бэкенда. 
Зачем ждать конца?


Это 2 независимых процесса, работающих с максимально возможной скоростью
* ответ от бэкенда вычитывается быстро
* полученный от бэкенда ответ - передаётся клиенту по мере готовности 
клиента его принять.



--
Best regards,
Andrey A. Kopeyko 
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проксирование, буфер, лаги

2019-08-07 Пенетрантность rihad
Меня вот это немного смутило:

"When buffering is disabled, the response is passed to a client
synchronously, immediately as it is received. nginx will not try to read the
whole response from the proxied server. "

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering

Получается когда buffering включен, то наоборот, контент читается полностью
перед началом отдачи клиенту.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,285149,285150#msg-285150

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Проксирование, буфер, лаги

2019-08-07 Пенетрантность rihad
Допустим если включено кеширование через proxy_cache, а также включено
proxy_buffering (по умолчанию). Что происходит когда клиент запрашивает
ресурс которого нет в кеше? Он сначала полностью скачивается из апстрима,
кешируется, и только потом начинает отдаваться клиенту? И если таких уровней
апстримов 2 или более, то лаг получения контента клиентом увеличивается
грубо говоря в 2 или более раз?

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,285149,285149#msg-285149

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru