Re: Проксирование, буфер, лаги
Спасибо за ответ. Буферизация конечно включена, мне просто показалось что желаемое поведение (одновременный прием от апстрима и отправка клиенту) происходит только при выключенной буферизации. Размер буфера в несколько десятков кб роли не играет, это почти одновременно. У нас в основном картинки по несколько сот кб. 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: Проксирование, буфер, лаги
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: Проксирование, буфер, лаги
Просто эта цитата в доках на английском говорит, что такое бывает при выключенном буферинге. 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: Проксирование, буфер, лаги
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: Проксирование, буфер, лаги
Меня вот это немного смутило: "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
Проксирование, буфер, лаги
Допустим если включено кеширование через 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