ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: proxy_cache и range запросы



Приветствую.


2013/1/22 Maxim Dounin <mdounin@xxxxxxxxxx>
Hello!

On Tue, Jan 22, 2013 at 02:38:53AM +0600, Danila Shtan wrote:

> Приветствую.
>
> 1) Для proxy_cache и range есть небольшой патч от Maxim Dounin (
> http://forum.nginx.org/read.php?2,225815,225826#msg-225826) который
> насколько я понимаю не внесен в основную ветку разработки (из-за проблем
> при max_ranges >1), но в случае применения его решает проблему получения
> 200 OK при первом запросе к бэкенду и заполнении кэша. Может быть имеет
> смысл включить такое поведение по умолчанию при max_ranges 1;? Многие
> современные браузеры в части воспроизведения HTML5 видео сурово завязаны на
> 206 и правильный Range в ответ на свои запросы, мне кажется, что было бы
> неплохо учесть существующие реалии.

Может быть.

Опыт использования патча в production имеется?  Если да - хотелось
бы услышать отзывы.

По вышепомянутой ссылке человек, кажется, доволен.
Мы свою сборку с патчем и 3rd-party модулями выкатываем завтра ? через неделю буду готов поделиться впечатлениями.
 
> 2) nginx ни за что не отдаст 206 ответ при запросе c Range к
> закэшированному файлу, если в оригинальном ответе бэкенда не было заголовка
> Accept-Ranges. Поведение мягко говоря не очевидное, стоило мне нескольких
> часов попыток понять, что происходит. RFC говорит, что заголовок совершенно
> опциональный, более того, если nginx уже получил полное тело файла, имеет
> Content-Length ответа и пр. ? еще более непонятно, что мешает ему отдавать
> ожидаемые клиентом 206.

В самом nginx'е допустимость byte-range-запросов однозначно
приводит к появлению заголовка Accept-Ranges (а отсутствие оной
поддержки - приводит к его отсутствию), и AFAIK в большинстве
других серверов так же.  Такое поведение - позволяет максимально
полно дублировать поведение исходного сервера, допуская range'и
только там, где бекенд их поддерживает.

Там где бэкенд их не поддерживает ему, вероятно, стоит сказать Accept-Ranges: none
Проблема в том, что эта особенность сервера не описана вообще нигде. :)

Наверное, теперь, когда есть директива max_ranges, и не желающие
поддержки range'ей могут от неё отказаться явно, это поведение
стоит пересмотреть.

По-моему это хорошая идея.

Д.
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.