proxy_cache & multipart/multiply requests

Aleksej Novikov aleksej at novikov.lv
Wed May 20 13:26:37 MSD 2009


Hello Igor,

Извинте за на зойливость, но я хотел бы уточнить.


1.Правильно  ли  я понял, что в описаном мною случае, в реальности будет
качатся  только  первый  запрос  к  файлу  из  всех 10 запросов. А все
остальные  из-за того что range запрос убран качатся не будут. То есть
по сути nginx будет возвращать что не поддерживется дакачка ?

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






More information about the nginx-ru mailing list