Re: nginx proxy cache битые файлы

2022-01-05 Пенетрантность Илья Шипицин
я не адвокатирую HTTP/1.0
однако, гипотетически могут возникнуть грабли такого свойства - на http/1.0
не поддерживается gzip.
из-за этого ваш бекенд всегда будет игнорировать компрессию.

допустим, вы включили 1.1, бекенд отдал с компрессией, вы положили ответ в
кеш.
пришел клиент (без компрессии), вы ему отдали сжатое из кеша.

маловероятно, что такое может быть (пример надуманный), но у клиента все
сломается.

ср, 5 янв. 2022 г. в 18:00, Gena Makhomed :

> On 05.01.2022 14:35, Maxim Dounin wrote:
>
> > Неполные ответы nginx не сохраняет.  Однако есть нюанс: по
> > умолчанию при работе с бэкендами nginx использует HTTP/1.0
> > (http://nginx.org/r/proxy_http_version), а значит
> > "Transfer-Encoding: chunked" использоваться не будет, и
> > соответственно для ответов без длины может быть невозможно
> > установить, полный он или не полный.
>
> А какой смысл по умолчанию при работе
> с бэкендами использовать HTTP/1.0 ?
>
> Ведь это же явно разложенные грабли (subj),
> на которые практически все рано или поздно наступают.
>
> Может быть имеет смысл изменить значение по умлолчанию,
> чтобы при работе с бэкендами использовался протокол HTTP/1.1 ?
>
> Преимуществ HTTP/1.0 не дает никаких, одни только проблемы.
> И ответа на этот вопрос в документации нет, почему так сделано.
>
> --
> Best regards,
>   Gena
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx proxy cache битые файлы

2022-01-05 Пенетрантность Илья Шипицин
по соображениям обратной совместимости, вероятно.
все, для кого важно, включили 1.1

ср, 5 янв. 2022 г. в 18:00, Gena Makhomed :

> On 05.01.2022 14:35, Maxim Dounin wrote:
>
> > Неполные ответы nginx не сохраняет.  Однако есть нюанс: по
> > умолчанию при работе с бэкендами nginx использует HTTP/1.0
> > (http://nginx.org/r/proxy_http_version), а значит
> > "Transfer-Encoding: chunked" использоваться не будет, и
> > соответственно для ответов без длины может быть невозможно
> > установить, полный он или не полный.
>
> А какой смысл по умолчанию при работе
> с бэкендами использовать HTTP/1.0 ?
>
> Ведь это же явно разложенные грабли (subj),
> на которые практически все рано или поздно наступают.
>
> Может быть имеет смысл изменить значение по умлолчанию,
> чтобы при работе с бэкендами использовался протокол HTTP/1.1 ?
>
> Преимуществ HTTP/1.0 не дает никаких, одни только проблемы.
> И ответа на этот вопрос в документации нет, почему так сделано.
>
> --
> Best regards,
>   Gena
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx proxy cache битые файлы

2022-01-05 Пенетрантность Gena Makhomed

On 05.01.2022 14:35, Maxim Dounin wrote:


Неполные ответы nginx не сохраняет.  Однако есть нюанс: по
умолчанию при работе с бэкендами nginx использует HTTP/1.0
(http://nginx.org/r/proxy_http_version), а значит
"Transfer-Encoding: chunked" использоваться не будет, и
соответственно для ответов без длины может быть невозможно
установить, полный он или не полный.


А какой смысл по умолчанию при работе
с бэкендами использовать HTTP/1.0 ?

Ведь это же явно разложенные грабли (subj),
на которые практически все рано или поздно наступают.

Может быть имеет смысл изменить значение по умлолчанию,
чтобы при работе с бэкендами использовался протокол HTTP/1.1 ?

Преимуществ HTTP/1.0 не дает никаких, одни только проблемы.
И ответа на этот вопрос в документации нет, почему так сделано.

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

Re: nginx proxy cache битые файлы

2022-01-05 Пенетрантность Maxim Dounin
Hello!

On Tue, Jan 04, 2022 at 05:49:34AM -0500, Vladislavik wrote:

> Добрый день, nginx проксирует запросы к удаленному бэкэнду. Удаленный nginx
> бэкэнд сжимает динамические ответы brotli и отдает через HTTP1.1
> chunked_transfer_encoding. 
> 
> Иногда в кэше появляются не полные части файлов. Вопрос: nginx при
> наступлении proxy_cache_min_uses должен сохранить ответ, НО если ответ был
> не полным то nginx его все равно сохранит или перезапросит или отложит
> сохранение до следующего запроса? 
> 
> При разборе кэш файла из proxy_cache директории видно, что он был сжат и
> отправлялся по chunked_transfer_encoding без указания Content-Lenght. Nginx
> же по идее должен перед сохранением в кэш удостовериться, что файл получен
> полностью, с случае если Content-Lenght указан смотреть на полученный
> размер, если не указан, то ожидать чанка с содержимым "0"

Неполные ответы nginx не сохраняет.  Однако есть нюанс: по 
умолчанию при работе с бэкендами nginx использует HTTP/1.0 
(http://nginx.org/r/proxy_http_version), а значит 
"Transfer-Encoding: chunked" использоваться не будет, и 
соответственно для ответов без длины может быть невозможно 
установить, полный он или не полный.

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

nginx proxy cache битые файлы

2022-01-04 Пенетрантность Vladislavik
Добрый день, nginx проксирует запросы к удаленному бэкэнду. Удаленный nginx
бэкэнд сжимает динамические ответы brotli и отдает через HTTP1.1
chunked_transfer_encoding. 

Иногда в кэше появляются не полные части файлов. Вопрос: nginx при
наступлении proxy_cache_min_uses должен сохранить ответ, НО если ответ был
не полным то nginx его все равно сохранит или перезапросит или отложит
сохранение до следующего запроса? 

При разборе кэш файла из proxy_cache директории видно, что он был сжат и
отправлялся по chunked_transfer_encoding без указания Content-Lenght. Nginx
же по идее должен перед сохранением в кэш удостовериться, что файл получен
полностью, с случае если Content-Lenght указан смотреть на полученный
размер, если не указан, то ожидать чанка с содержимым "0"

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

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