Re: Псевдо стриминг чанков, возможно создать с помощью Nginx?

2015-10-20 Пенетрантность Alexandr Porunov
Константин, спасибо за ответ.

Но, я всегда думал что HLS и MPEG-DASH это не псевдо стримин а стриминг. Я
имел в виду что есть progressive download который позволяет проигрывать mp4
file не загружая его полностью, но он не позволяет перематывать в еще не
загруженные части файла. А есть progressive download который позволяет
перематывать в любое место файла, если я не ошибаюсь это называеться pseudo
streaming. Перемотка в таком случае возможна по ключевым кадрам. Я знаю что
Nginx поддерживает это, но у меня эти ключевые кадры разбиты на множество
файлов. Чанки с названиями вроде movie1.mp4, movie2.mp4, movie3.mp4 ...
movieN.mp4. Я бы хотел иметь возможность проигрывать эти все файлы как одно
целое но без использования HLS и DASH. Вот и спрашиваю возможно ли это
организовать? Обращаться с этим множеством файлов как с одним.
Чтобы иметь возможность в браузере просто написать:

  

И начать воспроизводить всю эту последовательность файлов как один файл.

2015-10-20 22:01 GMT+03:00 Konstantin Tokarev :

>
>
> 20.10.2015, 21:33, "Alexandr Porunov" :
> > Здравсвуйте!
> >
> > Возможно ли создать псевдо стриминг чанков с помощью Nginx?
> >
> > Если у меня храняться порезанные видео по 2 секунды в mp4 h.264/aac и
> нету возможности склеивать уже порезанные файлы, то возможно ли как-то
> организовать псевдо стриминг этих файлов с помощью Nginx?
> >
> > С Уважением
>
> Конечно. Нужно выложить соотвествующие этим чанкам плейлисты HLS,
> манифесты MPEG-DASH или описание этих чанков в каком-либо другом
> псевдостриминговом формате.
>
> --
> Regards,
> Konstantin
>
> ___
> 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?

2015-10-20 Пенетрантность Konstantin Tokarev


20.10.2015, 21:33, "Alexandr Porunov" :
> Здравсвуйте!
>
> Возможно ли создать псевдо стриминг чанков с помощью Nginx?
>
> Если у меня храняться порезанные видео по 2 секунды в mp4 h.264/aac и нету 
> возможности склеивать уже порезанные файлы, то возможно ли как-то 
> организовать псевдо стриминг этих файлов с помощью Nginx?
>
> С Уважением

Конечно. Нужно выложить соотвествующие этим чанкам плейлисты HLS, манифесты 
MPEG-DASH или описание этих чанков в каком-либо другом псевдостриминговом 
формате.

-- 
Regards,
Konstantin

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

Псевдо стриминг чанков, возможно создать с помощью Nginx?

2015-10-20 Пенетрантность Alexandr Porunov
Здравсвуйте!

Возможно ли создать псевдо стриминг чанков с помощью Nginx?

Если у меня храняться порезанные видео по 2 секунды в mp4 h.264/aac и нету
возможности склеивать уже порезанные файлы, то возможно ли как-то
организовать псевдо стриминг этих файлов с помощью Nginx?

С Уважением
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: HTTP2 снижает скорость загрузки статических файлов

2015-10-20 Пенетрантность Daniel Podolsky
> Как итог, если страница содержит более 6 элементов - имеет смысл
> использовать http2
Или нет.

на самом деле - смысл использования http2 полностью (!) завязан на контент.

если у нас 6 элементов на странице, и один из них гораздо больше
прочих, и вероятность его попадания в кеш низка - тогда да. если нет -
http2 ничем нам не поможет.

а то тут уже разные программисты приходят с требованием "включите
http2" чтобы "стало быстрее"...
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: javascript in nginx

2015-10-20 Пенетрантность Anton Yuzhaninov

On 09/23/15 21:53, Igor Sysoev wrote:

Интересно ваше мнение об JS-интерфейсе к внутренностям nginx’а.


Полезно было бы в JS-интерфейсе к nginx иметь возможность:

1. прочитать произвольный локальный файл (аналог sysread в перле)
2. ngx_http_map_uri_to_path() - в ngx_http_perl_module это $r->filename
3. отдать кусочек заданного файла текущим сконфигурированным методом (например 
через sendfile если в данном location действует директива senfile on).


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

md5 в качестве memcached key

2015-10-20 Пенетрантность neomag
Здравствуйте!

бэкенд кладет в memcache куски сайта, в качестве ключей используется md5 от
$uri$args

есть ли возможность без привлечения Perl  дергать данные из memcache по
ключу md5?

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

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

Re: HTTP2 снижает скорость загрузки статических файлов

2015-10-20 Пенетрантность Валентин Бартенев
On Tuesday 20 October 2015 08:57:33 Juri Dmitrijev wrote:
> В общем, если кому-то пригодится, пообщался с Кацухо Оку (Kazuho Oku), 
> создателем h2o веб-сервера, он подтвердил, что если расматривать каждый 
> запрос в отдельности, то http2 медленнее, т.к. накладываются особености 
> протокола. В оригинале: "Requests will be queued by the server, and the 
> response will be sent depending on how the client and server prioritize 
> the responses. So if you look at each request, it is natural to see what 
> you have found.". Правда это не объясняет, почему обращение к одному 
> единственному ресурсу проходи медленнее. Но, думаю, тут играет роль 
> процесс добавления в очередь и т.п.  Как итог, если страница содержит 
> более 6 элементов - имеет смысл использовать http2
> 

Я скорее склонен полагать, что лимитирующим фактором тут становится
работа flow control в http/2.

Мне уже присылали логи, в которых было видно, что некоторые клиенты
банально не успевает обновлять окно и nginx вынужден простаивать в
ожидании.

Тут подробности:
http://mailman.nginx.org/pipermail/nginx/2015-October/048939.html

Но вывод верный, страница должна содержать много больше 6 элементов,
необходимых для её отрисовки, тогда возможно увидеть какой-то
прирост от http/2.

Вот еще интересное на тему:
http://www.bbc.co.uk/rd/blog/2015/07/performance-testing-results-of-adaptive-media-streaming-over-http

--
Валентин Бартенев
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx забивает все место в корневом разделе linux

2015-10-20 Пенетрантность Валентин Бартенев
On Tuesday 20 October 2015 10:29:44 Иван Мишин wrote:
> >
> > Общий их объем не может превысить максимального размера временного файла
> > помноженного на максимальное количество параллельных запросов, которое
> > ваши бэкенды могут обслуживать.
> 
>  Соответственно если у меня за nginx балансировщиком стоит большое кол-во
> бэкендов, то количество параллельных запросов может быть очень велико, и в
> моем случае общий объем временных файлов может достигать больших размеров.
> 
> Если отключите запись во временные файлы и ответ от бекенда превышает
> > объем буферов, используемых для его чтения, то ваш бекенд не отдаст
> > ответ полностью и будет занят до тех пор, пока клиент не вычитает
> > оставшийся объем данных.
> 
> то есть нагрузка на бекенды возрастет?
> 
> 
> А если используется следующая схема, стоит пара балансировщиков, а за ними
> сотня бэкендов в виде nginx+apache. Могу ли я отключить буферизацию на
> балансирах, но оставить ее на  бэкенд nginx. И тогда каждый бекенд будет
> использовать свой буфер, а сейчас используется буфер балансировщиков для
> всей сотни бекендов. Бэкенд nginx будет используя свой буфер быстренько
> забирать данные у апача и далее отправлять на балансир. Тем самым у меня
> бекенд не будет так сильно нагружен как в случае если я буфер вобще
> отключу.
> 
[..]

Да, это неплохой вариант.

Но только еще раз обращаю внимание, что буферизацию совсем отключать не
нужно (директива proxy_buffering должна оставаться в значении on), а вам
требуется лишь запретить буферизировать на диск:

  proxy_max_temp_file_size 0;

--
Валентин Бартенев
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: баг сафари на http/2

2015-10-20 Пенетрантность Илья Шипицин
выкрутились таким способом:

map $http_content_length $http2_content_length {
'' 0;
default $http_content_length;

}



и при проксировании:


proxy_set_header Content-Length $http2_content_length;


20 октября 2015 г., 15:53 пользователь Илья Шипицин 
написал:

> кажется, я ввел вас в заблуждение.
> сафари действительно забывает добавить Content-Length в случае http/2, а
> 411 отвечает бекенд (iis).
> вопрос снимается
>
> 20 октября 2015 г., 15:39 пользователь Ruslan Ermilov 
> написал:
>
> On Tue, Oct 20, 2015 at 03:13:56PM +0500, Илья Шипицин wrote:
>> > забыл уточнить - баг воспроизводится на iOS9 и Mac OS 10.11
>> >
>> > 20 октября 2015 г., 15:00 пользователь Илья Шипицин <
>> chipits...@gmail.com>
>> > написал:
>> >
>> > > Добрый день!
>> > >
>> > > налетели на ситуацию
>> > >
>> > > 1) браузер сафари (без разницы - десктопный или мобильный)
>> > > 2) включен http2
>> > > 3) отправляется POST с пустым телом
>> > > 4) запрос проксируется с nginx на http-апстрим
>> > >
>> > > в результате получается, что сафари, видя, что тело пустое - не
>> добавляет
>> > > Content-Length, а nginx, видя, что Content-Length отсутствует -
>> возвращает
>> > > 411
>> > >
>> > > давайте с этим что-нибудь сделаем ?
>> > >
>> > > стенд для воспроизведения бага: https://http2.skbkontur.ru
>> > >
>> > > Илья Шипицин
>>
>> На основании чего сделан вывод о том, что это имеет какое-либо
>> отношение к HTTP/2?
>>
>> С обычным HTTP POST-запросом на сайте наблюдается такое же поведение:
>>
>> $ curl -v --data '' -H 'content-length:' http://http2.skbkontur.ru/
>> * Connected to http2.skbkontur.ru (46.17.201.207) port 80 (#0)
>> > POST / HTTP/1.1
>> > Host: http2.skbkontur.ru
>> > User-Agent: curl/7.43.0
>> > Accept: */*
>> > Content-Type: application/x-www-form-urlencoded
>> >
>> < HTTP/1.1 411 Length Required
>> < Server: nginx
>> < Date: Tue, 20 Oct 2015 10:35:48 GMT
>> < Content-Type: text/html; charset=us-ascii
>> < Content-Length: 344
>>
>> nginx по собственной воле никогда не возвращает 411, так что это
>> скорее всего проделки вашего бэкенда.
>>
>> ___
>> 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: баг сафари на http/2

2015-10-20 Пенетрантность Илья Шипицин
кажется, я ввел вас в заблуждение.
сафари действительно забывает добавить Content-Length в случае http/2, а
411 отвечает бекенд (iis).
вопрос снимается

20 октября 2015 г., 15:39 пользователь Ruslan Ermilov 
написал:

> On Tue, Oct 20, 2015 at 03:13:56PM +0500, Илья Шипицин wrote:
> > забыл уточнить - баг воспроизводится на iOS9 и Mac OS 10.11
> >
> > 20 октября 2015 г., 15:00 пользователь Илья Шипицин <
> chipits...@gmail.com>
> > написал:
> >
> > > Добрый день!
> > >
> > > налетели на ситуацию
> > >
> > > 1) браузер сафари (без разницы - десктопный или мобильный)
> > > 2) включен http2
> > > 3) отправляется POST с пустым телом
> > > 4) запрос проксируется с nginx на http-апстрим
> > >
> > > в результате получается, что сафари, видя, что тело пустое - не
> добавляет
> > > Content-Length, а nginx, видя, что Content-Length отсутствует -
> возвращает
> > > 411
> > >
> > > давайте с этим что-нибудь сделаем ?
> > >
> > > стенд для воспроизведения бага: https://http2.skbkontur.ru
> > >
> > > Илья Шипицин
>
> На основании чего сделан вывод о том, что это имеет какое-либо
> отношение к HTTP/2?
>
> С обычным HTTP POST-запросом на сайте наблюдается такое же поведение:
>
> $ curl -v --data '' -H 'content-length:' http://http2.skbkontur.ru/
> * Connected to http2.skbkontur.ru (46.17.201.207) port 80 (#0)
> > POST / HTTP/1.1
> > Host: http2.skbkontur.ru
> > User-Agent: curl/7.43.0
> > Accept: */*
> > Content-Type: application/x-www-form-urlencoded
> >
> < HTTP/1.1 411 Length Required
> < Server: nginx
> < Date: Tue, 20 Oct 2015 10:35:48 GMT
> < Content-Type: text/html; charset=us-ascii
> < Content-Length: 344
>
> nginx по собственной воле никогда не возвращает 411, так что это
> скорее всего проделки вашего бэкенда.
>
> ___
> 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: баг сафари на http/2

2015-10-20 Пенетрантность Ruslan Ermilov
On Tue, Oct 20, 2015 at 03:13:56PM +0500, Илья Шипицин wrote:
> забыл уточнить - баг воспроизводится на iOS9 и Mac OS 10.11
> 
> 20 октября 2015 г., 15:00 пользователь Илья Шипицин 
> написал:
> 
> > Добрый день!
> >
> > налетели на ситуацию
> >
> > 1) браузер сафари (без разницы - десктопный или мобильный)
> > 2) включен http2
> > 3) отправляется POST с пустым телом
> > 4) запрос проксируется с nginx на http-апстрим
> >
> > в результате получается, что сафари, видя, что тело пустое - не добавляет
> > Content-Length, а nginx, видя, что Content-Length отсутствует - возвращает
> > 411
> >
> > давайте с этим что-нибудь сделаем ?
> >
> > стенд для воспроизведения бага: https://http2.skbkontur.ru
> >
> > Илья Шипицин

На основании чего сделан вывод о том, что это имеет какое-либо
отношение к HTTP/2?

С обычным HTTP POST-запросом на сайте наблюдается такое же поведение:

$ curl -v --data '' -H 'content-length:' http://http2.skbkontur.ru/
* Connected to http2.skbkontur.ru (46.17.201.207) port 80 (#0)
> POST / HTTP/1.1
> Host: http2.skbkontur.ru
> User-Agent: curl/7.43.0
> Accept: */*
> Content-Type: application/x-www-form-urlencoded
> 
< HTTP/1.1 411 Length Required
< Server: nginx
< Date: Tue, 20 Oct 2015 10:35:48 GMT
< Content-Type: text/html; charset=us-ascii
< Content-Length: 344

nginx по собственной воле никогда не возвращает 411, так что это
скорее всего проделки вашего бэкенда.

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

Re: баг сафари на http/2

2015-10-20 Пенетрантность Pavel Mihaduk
Судя по спеке, заголовок действительно необязательный, так что это баг не 
сафари.

>A request or response that includes a payload body can include a 
>content-length header field. A request or response is >also malformed if the 
>value of a content-length header field does not equal the sum of theDATA 
> frame payload lengths >that form 
>the body. 

> On 20 окт. 2015 г., at 13:00, Илья Шипицин  wrote:
> 
> Добрый день!
> 
> налетели на ситуацию
> 
> 1) браузер сафари (без разницы - десктопный или мобильный)
> 2) включен http2
> 3) отправляется POST с пустым телом
> 4) запрос проксируется с nginx на http-апстрим
> 
> в результате получается, что сафари, видя, что тело пустое - не добавляет 
> Content-Length, а nginx, видя, что Content-Length отсутствует - возвращает 411
> 
> давайте с этим что-нибудь сделаем ?
> 
> стенд для воспроизведения бага: https://http2.skbkontur.ru 
> 
> 
> Илья Шипицин
> ___
> 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: баг сафари на http/2

2015-10-20 Пенетрантность Илья Шипицин
забыл уточнить - баг воспроизводится на iOS9 и Mac OS 10.11

20 октября 2015 г., 15:00 пользователь Илья Шипицин 
написал:

> Добрый день!
>
> налетели на ситуацию
>
> 1) браузер сафари (без разницы - десктопный или мобильный)
> 2) включен http2
> 3) отправляется POST с пустым телом
> 4) запрос проксируется с nginx на http-апстрим
>
> в результате получается, что сафари, видя, что тело пустое - не добавляет
> Content-Length, а nginx, видя, что Content-Length отсутствует - возвращает
> 411
>
> давайте с этим что-нибудь сделаем ?
>
> стенд для воспроизведения бага: https://http2.skbkontur.ru
>
> Илья Шипицин
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

баг сафари на http/2

2015-10-20 Пенетрантность Илья Шипицин
Добрый день!

налетели на ситуацию

1) браузер сафари (без разницы - десктопный или мобильный)
2) включен http2
3) отправляется POST с пустым телом
4) запрос проксируется с nginx на http-апстрим

в результате получается, что сафари, видя, что тело пустое - не добавляет
Content-Length, а nginx, видя, что Content-Length отсутствует - возвращает
411

давайте с этим что-нибудь сделаем ?

стенд для воспроизведения бага: https://http2.skbkontur.ru

Илья Шипицин
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx забивает все место в корневом разделе linux

2015-10-20 Пенетрантность Иван Мишин
>
> Общий их объем не может превысить максимального размера временного файла
> помноженного на максимальное количество параллельных запросов, которое
> ваши бэкенды могут обслуживать.

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

Если отключите запись во временные файлы и ответ от бекенда превышает
> объем буферов, используемых для его чтения, то ваш бекенд не отдаст
> ответ полностью и будет занят до тех пор, пока клиент не вычитает
> оставшийся объем данных.

то есть нагрузка на бекенды возрастет?


А если используется следующая схема, стоит пара балансировщиков, а за ними
сотня бэкендов в виде nginx+apache. Могу ли я отключить буферизацию на
балансирах, но оставить ее на  бэкенд nginx. И тогда каждый бекенд будет
использовать свой буфер, а сейчас используется буфер балансировщиков для
всей сотни бекендов. Бэкенд nginx будет используя свой буфер быстренько
забирать данные у апача и далее отправлять на балансир. Тем самым у меня
бекенд не будет так сильно нагружен как в случае если я буфер вобще
отключу.




19 октября 2015 г., 16:40 пользователь Валентин Бартенев 
написал:

> On Monday 19 October 2015 09:15:27 Иван Мишин wrote:
> > Во-первых, не хотелось бы отключать запись во временный файл , хочется
> > просто ограничить размер отведенный под временный файлы.
> > Валентин, proxy_max_temp_file_size - "Эта директива задаёт максимальный
> > размер временного файла."
> > То есть этой директивой  я могу ограничить только размер одного файла,
> но у
> > меня довольно нагруженная система и этих самых временных файлов может
> быть
> > очень много и они все равно забьют корень системы под максимум.
> >
> > Есть ли какие-то способы ограничить общий размер отведенный под временные
> > файлы?А так же не понятно что станет лучше/хуже если отключить запись
> > во временные файлы путем "proxy_max_temp_file_size 0;"
> >
> [..]
>
> Общий их объем не может превысить максимального размера временного файла
> помноженного на максимальное количество параллельных запросов, которое
> ваши бэкенды могут обслуживать.
>
> Каких-либо явных ограничений на этот счет не предусмотрено.
>
> Если отключите запись во временные файлы и ответ от бекенда превышает
> объем буферов, используемых для его чтения, то ваш бекенд не отдаст
> ответ полностью и будет занят до тех пор, пока клиент не вычитает
> оставшийся объем данных.
>
> --
> Валентин Бартенев
> ___
> 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