Maxim Dounin
April 23, 2020 09:02AM
Hello!

On Thu, Apr 23, 2020 at 03:36:59PM +0300, Slawa Olhovchenkov wrote:

> On Thu, Apr 23, 2020 at 03:17:38PM +0300, Maxim Dounin wrote:
>
> > Hello!
> >
> > On Thu, Apr 23, 2020 at 12:23:16PM +0300, Slawa Olhovchenkov wrote:
> >
> > > On Thu, Apr 23, 2020 at 01:09:52AM +0300, Maxim Dounin wrote:
> > >
> > > > Hello!
> > > >
> > > > On Wed, Apr 22, 2020 at 07:35:55PM +0300, Slawa Olhovchenkov wrote:
> > > >
> > > > > А что происходит если у нас есть proxy_store а исходный запрос -- с
> > > > > ranges?
> > > > > Скачиваем и сохраняем все, отдаем кусок?
> > > > > Скачиваем и сохраняем кусок а потом глючим?
> > > >
> > > > Директива proxy_store не предполагает собственной логики кроме
> > > > собственно сохранения ответов. При это сохраняются только ответы
> > > > с кодом 200. Соответственно если бекенд возвращает 206 (Partial
> > > > content), то ответ сохранён не будет.
> > > >
> > > > Если нужно, чтобы ответ всегда сохранялся - заголовок Range можно
> > > > убрать из запроса на бекенд с помощью директивы proxy_set_header.
> > > > Если при этом хочется ещё и вернуть клиенту ответ с учётом
> > > > запрошенных диапазонов, то в простых случаях это можно сделать,
> > > > включив директиву proxy_force_ranges.
> > >
> > > а когда клиент -- это на самом деле модуль который сделал сабреквест
> > > -- это относится к простым случаям?
> >
> > В подзапросах range'ей в общем случае не бывает вообще.
>
> У меня -- есть.
> ок, может это формально не позапрос.
> Хотя по дебаг логу -- подзапрос (выборочное цититрование, да).

Тут какое дело. То, что в рамках подзапроса можно отправить на
бекенд range-запрос, добавив соответствующий заголовк Range - не
значит, что в подзапросах есть range'и. Это значит лишь то, что
ответ на подзапрос доступен как есть, ровно то, что вернул бекенд.
Что с этим делать - решает тот, кто соответствующие подзапросы
создавал и обрабатывает.

Скажем, в частном случае модуля split - подзапросами запрашиваются
куски файла с бекенда, и потом результат склеивается для ответа на
запрос клиента, в том числе с учётом запрошенного клиентом
диапазона. Но разбираться с тем, что именно вернулось на
конкретные подзапросы - это задача модуля split, который эти
подзапросы делал, а не nginx'а. Сам nginx занимается обработкой
range-запросов только в рамках ответа на запросы клиентов.

Соответственно возвращаясь к исходному вопросу: если заголовка
Range в подзапросе на бекенд не будет, то ответ бекенда ожидаемо
будет полный. Что с этим будет делать конкретный сторонний модуль -
вопрос к конкретному стороннему модулю.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

proxy_store и ranges

Slawa Olhovchenkov April 22, 2020 12:36PM

Re: proxy_store и ranges

Maxim Dounin April 22, 2020 06:10PM

Re: proxy_store и ranges

Slawa Olhovchenkov April 23, 2020 05:24AM

Re: proxy_store и ranges

Maxim Dounin April 23, 2020 08:18AM

Re: proxy_store и ranges

Slawa Olhovchenkov April 23, 2020 08:38AM

Re: proxy_store и ranges

Maxim Dounin April 23, 2020 09:02AM

Re: proxy_store и ranges

Slawa Olhovchenkov April 23, 2020 09:16AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 266
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready