Re: Re[8]: nginx и Adobe FMS
Denis Erygin
erygin at corp.mail.ru
Fri Aug 31 03:24:14 MSD 2007
Приложил к письму специальный прокси-дампер (rtmp_proxy.pl),
который форматирует hex-вывод более вменяемо, чем tcpdump.
Схема использования:
1) flash -> rtmp_proxy -> nginx -> FMS - что приходит
2) flash -> nginx -> rtmp_proxy -> FMS - что доходит
./rtmp_proxy.pl local.host local.port fms.host fms.port
Скрипт генерит файл "dump.txt", причем он перезаписывается
при запуске, поэтому лучше сохранять его поддругим именем,
перед след. стартом.
В общем, жду дампы для 1) и 2), можно аттачем.
По поводу дампа tcpdump:
1) http://pastebin.com/m28980670 (без буфера)
Видно, что идут пакеты с инкрементом от 196 по 200,
т.е. соединение установлено, передача нормальная.
2) http://pastebin.com/m2a6cd4cc (c буфером)
Видно только несколько неудачных попыток соединения,
до передачи данных дело не доходит.
Похоже, что Nginx ждет данные,
что приводит к timeout в FMS и сбросу соединения.
----- Original Message -----
From: "Vadim A. Umanski" <umanski at ext.ru>
To: "Denis Erygin" <nginx-ru at sysoev.ru>
Sent: Thursday, August 30, 2007 5:45 PM
Subject: Re[8]: nginx и Adobe FMS
Здравствуйте, Denis.
Вы писали 30 августа 2007 г., 15:51:33:
DE> Лучше сделать hex-dump пакетов этих потоков для случая без буферизации и
с
DE> ней,
DE> и запостить там же.
Итак, общаются FMP и nginx (внешний интерфейс).
Без
http://pastebin.com/m28980670
Мгновенно, очень быстро - короче, идет поток.
С
http://pastebin.com/m2a6cd4cc
4 пакета, длительное задумье, потом еще пакеты, еще задумье... В итоге
плеер покряхтел - и попытался выполнить fallback на rtmps: ...
DE> ----- Original Message -----
DE> From: "Vadim A. Umanski" <umanski at ext.ru>
DE> To: "Denis Erygin" <nginx-ru at sysoev.ru>
DE> Sent: Thursday, August 30, 2007 2:43 PM
DE> Subject: Re[6]: nginx и Adobe FMS
DE> Здравствуйте, Denis.
DE> Не работает буферизация в nginx при проигрывании через него потока от
DE> Adobe FMS.
DE> При включении буферизации проигрывание (пока) невозможно.
DE> Вы писали 30 августа 2007 г., 0:14:05:
>>>Заметил, что реально данные идут не монотонным единым потоком, а
>>>последовательными кусочками
DE>> Так и есть, так FMS подстраивается под HTTP.
DE>> Поэтому буферизация тоже должна работать,
DE> Тоже верю, что должна, тоже хочу, чтоб работала, но пока не хочет!
DE> Может ты, еще кто-то или даже Игорь что-то подскажут...
DE>> но в данном случае вероятно нарушается целостность пакета
DE>> из-за маленького размера буфера, можно оставить вот эти строки
DE>> из первого конфига:
DE>> proxy_buffer_size 8k;
DE>> proxy_buffers 512 4k;
DE>> proxy_busy_buffers_size 64k;
DE> Прямо так - не помогает. ;-)
DE>> Далее менять эти цифры и смотреть на результат.
DE> Ну, "кусочки" выходят очень разные - смотрел вот так.
DE> Нормально играющийся поток, т.е. пока без буферизации.
DE> [toor at fms01 ~]$ tcpdump -p -i lo -n -s 1518 -w - src port 8080 | strings
|
DE> grep 'Content-Length'|head -n 100
DE> http://pastebin.com/m583c5bfe
DE> Пробую определить максимум
DE> [toor at fms01 ~]$ tcpdump -p -i lo -c 10000 -n -s 1518 -w - src port 8080
|
DE> strings | grep 'Content-Length' | sort -r -t ' ' -k 2 -g | head -n 100
DE> 39697 однако
DE> http://pastebin.com/m27952e1
DE> И вот таких, что интересно, тоже дохрена, с длиной 1
DE> [toor at fms01 ~]$ tcpdump -p -i lo -c 10000 -n -s 1518 -w - src port 8080
|
DE> strings | grep 'Content-Length' | sort -t ' ' -k 2 -g | head -n 100
DE> http://pastebin.com/m14b52055
DE> Но вроде все это само по себе не должно создавать проблем? Я вот
DE> подозреваю, что оно не из-за этого не хочет работать... Это же все
DE> больше оптимизация работы....
DE>> Если что, у меня есть прокси-дампер на perl,
DE>> интересно было бы посмотреть на его запись потока.
flash ->>> nginx -> perl-dump-proxy -> FMS
DE>> ----- Original Message -----
DE>> From: "Vadim A. Umanski" <umanski at ext.ru>
DE>> To: "Denis Erygin" <nginx-ru at sysoev.ru>
DE>> Sent: Wednesday, August 29, 2007 11:08 PM
DE>> Subject: Re[4]: nginx и Adobe FMS
DE>> Здравствуйте, Denis.
DE>> Получилось!!!
DE>> Для начала включил без буферизации с этим конфигом
DE>> http://pastebin.com/m15ae1ac2 , сваянным по-быстрому.
DE>> Заметил, что реально данные идут не монотонным единым потоком, а
DE>> последовательными кусочками - открыл сессию, скачал/передал кусочек
DE>> данных, закрыл сессию, далее повторить. Между nginx и FMS все время
DE>> видать табуны сессий в состоянии TIME_WAIT.
DE>> При этом в HTTP-пакетах в ответе есть проставленный Content-Length: ,
DE>> решил попробовать включить буферизацию в nginx. Вот с таким конфигом -
DE>> http://pastebin.com/m6bd4c71a . Однако, не заработало.
DE>> Проходит буквально несколько пакетиков - и все
DE>> [toor at fms01 html]$ tcpdump -A -n -i eth0 port 80 and host 10.253.33.8
DE>> tcpdump: verbose output suppressed, use -v or -vv for full protocol
DE> decode
DE>> listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
DE>> 22:00:25.274735 IP 10.253.33.8.3159 > xxx.xx.xx.xx.http: . ack
DE> 3617351334 win 65337
DE>> E..(|. at ...Y.
DE>> ..!..
DE>> +.W.P......f.P..9Z.........
DE>> 22:00:30.030300 IP 10.253.33.8.3159 > xxx.xx.xx.xx.http: F 0:0(0) ack 1
DE> win 65337
DE>> E..(~. at ...W.
DE>> ..!..
DE>> +.W.P......f.P..9Z.........
DE>> 22:00:30.030588 IP 10.253.33.8.3159 > xxx.xx.xx.xx.http: . ack 2 win
DE> 65337
DE>> E..(~. at ...W.
DE>> ..!..
DE>> +.W.P......f.P..9Z.........
DE>> 3 packets captured
DE>> 3 packets received by filter
DE>> 0 packets dropped by kernel
DE>> Типа - смотрю tcpdump'ом, что делается. Пускаю попытку проиграть
DE>> поток. Смотрю, жду долго, жму Ctrl-C...
DE>> IE, которым это дело играю, просто вешается с этого дела, сволочь...
DE>> Печально - я вот подумал, что буферизация может очень даже
DE>> пригодиться - когда нагрузка пойдет серьезная. Может, конечно, я
DE>> что-то не то включил/выключил/не добавил в конфиге? Или буферизация
DE>> тут невозможна и работать не будет? Вот бы понять.
DE>> Вадим.
DE>> Вы писали 25 августа 2007 г., 3:01:25:
DE>>> Думаю почитать все-таки следует тут:
DE>>> http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_pass
DE>>> А с непрерывной отдачей еще нужно до конца разобраться,
DE>>> это больше по части написания модулей.
>>>>Еще интересна разница между раздачей роликов и вещанием в стиле
>>>>IPTV...
DE>>> Особой разницы нет, при раздаче роликов идет реал-тайм видео-поток,
DE>>> но это больше от ActionScript кода зависит, там и настраивается.
DE>>> ----- Original Message -----
DE>>> From: "Vadim A. Umanski" <umanski at ext.ru>
DE>>> To: "Denis Erygin" <nginx-ru at sysoev.ru>
DE>>> Sent: Saturday, August 25, 2007 2:30 AM
DE>>> Subject: Re[2]: nginx и Adobe FMS
DE>>> Здравствуйте, Denis.
DE>>> Вы писали 25 августа 2007 г., 2:09:49:
DE>>>> Привет,
>>>>>Не могли бы вы подсказать, можно ли использовать nginx с
>>>>>Adobe Flash Media Server ?
DE>>>> Можно. В позавчерашнем разговоре, Игорь подтвердил принципиальную
DE>>>> возможность непрерывной отдачи данных в модуле и рассказал как это
DE> лучше сделать
DE>>>> в контексте nginx.
DE>>> А можно ли об этом где-то прочитать?
DE>>>> Но в данном случае, вполне достаточно обычного проксирования
DE> средствами nginx,
DE>>>> только не в курсе как там дела с POST запросами.
DE>>> Еще интересна разница между раздачей роликов и вещанием в стиле
DE>>> IPTV...
DE>>>> RTMPT - это бинарный RTMP(кодируется base64) вставленный в обычный
DE> POST-запрос,
DE>>>> т.е. полная совместимость с HTTP протоколом.
DE>>> Очень хорошая новость!
DE>>>> Поскольку мне приходилось писать реализацию протокола RTMP на основе
DE> разбора исходников
DE>>>> Red5 и анализа пакетов сниффером, могу даже сказать, что
принципиально
DE> возможно написать
DE>>>> полноценный видео-модуль к nginx и отказаться от Flash Media Server.
DE> Но непонятно, какие могут
DE>>>> быть последствия со стороны Adobe (кстати одного хакера уже почти
DE> приговорили к 100 годам,
DE>>>> да и Adobe отличилась историей со взломщиком паролей к pdf (Элкомсофт
DE> вроде)).
DE>>> Некому разрабатывать такое. Не предусмотрено время на такую
DE>>> разработку. Совершенно неинтересно связываться с Адобом. Проще
DE>>> легально заплатить денег. Бизнес-план AFAIK никакой партизаньщины не
DE>>> предусматривает.
DE>>> Nginx хочется внедрить из-за его многочисленных положительных качеств
DE>>> и ради возможности логировать и контролировать доступ. Положительный
DE>>> опыт эксплуатации nginx на хостинге уже есть, я в восторге! Но тут
DE>>> несколько иная специфика.
DE>>>> ----- Original Message -----
DE>>>> From: "Vadim A. Umanski" <umanski at ext.ru>
DE>>>> To: <nginx-ru at sysoev.ru>
DE>>>> Sent: Saturday, August 25, 2007 12:31 AM
DE>>>> Subject: nginx и Adobe FMS
DE>>>> Здравствуйте, уважаемые коллеги!
DE>>>> Не могли бы вы подсказать, можно ли использовать nginx с
DE>>>> Adobe Flash Media Server ?
DE>>>> Идея - FMP (Flash Media Player) на компьютере пользователя общается с
DE>>>> FMS (Flash Media Server) на нашем сервере.. В документации к FMS
видел
DE>>>> упоминание о возможности использовать протокол rtmpt (Real Time
DE>>>> Messaging Protocol Tunneling), когда rtmp "заворачивается" в HTTP. Не
DE>>>> смог, правда, понять, является ли rtmpt:// более или менее обычным
DE>>>> HTTP или содержит какие-то особые расширения протокола, которые будут
DE>>>> несовместимы, скажем, с использованием прокси-сервера. И не помешает
DE>>>> ли еще что-нибудь...
DE>>>> Получится ли использовать nginx с FMS ?
DE>>>> SY Vadim A. Umanski
DE>>>> System Administrator
DE>>>> InterNet Services Dept., IP Network Div.
DE>>>> Akado (Comcor-TV), Moscow
DE>>>> <Work> mailto:umanski at ext.ru
DE> mailto:VUmanski at comcor-tv..ru
DE>>>> <Private> mailto:umanski at panferova.net.ru
DE>>>> phone: (+7 495) 737 51 79
DE>>>> cell: (+7 916) 692 67 89
DE>>> SY Vadim A. Umanski
DE>>> System Administrator
DE>>> InterNet Services Dept., IP Network Div.
DE>>> Akado (Comcor-TV), Moscow
DE>>> <Work> mailto:umanski at ext.ru
DE> mailto:VUmanski at comcor-tv..ru
DE>>> <Private> mailto:umanski at panferova.net.ru
DE>>> phone: (+7 495) 737 51 79
DE>>> cell: (+7 916) 692 67 89
DE>> SY Vadim A. Umanski
DE>> System Administrator
DE>> InterNet Services Dept., IP Network Div.
DE>> Akado (Comcor-TV), Moscow
DE>> <Work> mailto:umanski at ext.ru
DE> mailto:VUmanski at comcor-tv..ru
DE>> <Private> mailto:umanski at panferova.net.ru
DE>> phone: (+7 495) 737 51 79
DE>> cell: (+7 916) 692 67 89
DE> SY Vadim A. Umanski
DE> System Administrator
DE> InterNet Services Dept., IP Network Div.
DE> Akado (Comcor-TV), Moscow
DE> <Work> mailto:umanski at ext.ru
DE> mailto:VUmanski at comcor-tv..ru
DE> <Private> mailto:umanski at panferova.net.ru
DE> phone: (+7 495) 737 51 79
DE> cell: (+7 916) 692 67 89
SY Vadim A. Umanski
System Administrator
InterNet Services Dept., IP Network Div.
Akado (Comcor-TV), Moscow
<Work> mailto:umanski at ext.ru
mailto:VUmanski at comcor-tv..ru
<Private> mailto:umanski at panferova.net.ru
phone: (+7 495) 737 51 79
cell: (+7 916) 692 67 89
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rtmp_proxy.pl.gz
Type: application/x-gzip
Size: 1335 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070831/cc04c726/attachment.bin>
More information about the nginx-ru
mailing list