Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: proxy_cache & multipart/multiply requests
On Wed, May 20, 2009 at 12:26:37PM +0300, Aleksej Novikov wrote:
> Hello Igor,
>
> Извинте за на зойливость, но я хотел бы уточнить.
>
>
> 1.Правильно ли я понял, что в описаном мною случае, в реальности будет
> качатся только первый запрос к файлу из всех 10 запросов. А все
> остальные из-за того что range запрос убран качатся не будут. То есть
> по сути nginx будет возвращать что не поддерживется дакачка ?
Если будет 10 одновременных запросов, то все 10 уйдут бэкенду, потому
пока нет busy lock'ов. Но клиентам будет отдан не весь ответ, а только
тот кусок, который они просили.
> 2. Если файл уже лежит в кеше, тогда nginx позволит его скачать в
> несколько запросов ?
Да.
>
> Спасибо!
>
>
> Wednesday, May 20, 2009, 12:04:51 PM, you wrote:
>
> > On Wed, May 20, 2009 at 01:21:23AM +0300, Aleksej Novikov wrote:
>
> >> Уважаемый, Игорь!
> >>
> >> Подскажите пожалуйста как поведёт себя модуль proxy_cache в следующей
> >> ситуации.
> >>
> >> От клиента приходит запрос на проксированный локейшн нжинкса на
> >> скачивание файла. При это запрос приходит на скачивание файла кусками,
> >> так как это делают программы качалки, разбивая файл на несколько
> >> частей. Понятное дело что УРЛ один и тот-же.
> >>
> >> Предположим что пришли запросы на скачку файла разбитого на 10 частей,
> >> все они передались на проксированный локейшн и началось скачиване.
> >>
> >> В этот момент, от другого пользователя приходит запрос на скачивание
> >> этого же файла, но разбитого на 5 частей.
> >>
> >> Будет ли уже скачанная и закешированная нжинксом часть данного фала
> >> отдана из кеша или будет сделан новый запрос на бекенд и файл будет
> >> тянутс с бекенда паралелно для двух пользователей в 10+5=15 потоков.
> >>
> >> И второй случай. Первый пользователь начал качать в 10 потоков, и в
> >> этот момент коннект оборвался, и он перезапросил скачивание каждой из
> >> 10 частей с той позиции где это оборвалось. Будут ли сделаны запросы
> >> на бекенд с текущей запрошенной позиции и по окончани скачивания в
> >> кеше нжинкса будет лежать целый запрошенный с бекенда файл или же
> >> будет произведена перекачка всего файла с бекенда целиком.
>
> > Если ответ может быть закэширован, то nginx убирает из запроса бэкенду
> > заголовки Range и If-Range и поэтому получает полной ответ. Клиенту
> > при этом отдаются запрашиваемый кусок при получении от бэкенда.
> > Когда ответ полностью получен, он попадает в кэш и потом отдаётся из кэша.
>
>
>
>
>
> --
> Best regards,
> Aleksej
> ICQ: 293-686-24
> GSM:371-293-686-24
>
--
Игорь Сысоев
http://sysoev.ru
|