Jump to content
Калькуляторы

Интересует рабочее решение для кэширования Youtubbe кто поднимал ? поделитесь опытом

Добрый день,

Интересует есть ли у кого-то рабочее решение для кэширования Youtube ?

Share this post


Link to post
Share on other sites

Если масштабы позволяют то правильное решение , это GGC

Share this post


Link to post
Share on other sites

А че, в гугле забанили ?

 

http://code.google.com/p/youtube-cache/

 

Проверено, работает (ну чуть напильником пильнуть.)

Вы уточните пожалуйста что там пилить надо, что оно стало рабочим?

 

Если масштабы позволяют то правильное решение , это GGC

Мы не магистральный провайдер. Нафик им с нами связываться?

Edited by Traskalata

Share this post


Link to post
Share on other sites

- А Вы и есть за меня будете ?

- Ага

© мультик

 

 

У меня 3.1 сквид и 1.2 нгинкс кеш пиром под сие стоит.

Насколько я припоминаю надо еще в список уникальных ключей для хранения добавить рендж (это такой параметр, как и id и itag

proxy_store "/usr/local/www/nginx_cache/files/id=$arg_id.itag=$arg_itag";

в примере по ссылке выше а не заголовок.) и algorithm. т.е. в конце перед " добавить

 

.range=$arg_range.algo=$arg_algorithm

Ну и везде, где оно есть. Иногда идут запросы без ренджа, по всей видимости это какая то качалка роликов, таким можно сделать внешнюю тулзу для генерации файла без ренджа из кучи с ренджами и наоборот, и добавить ее в середину try_files. но тут програмить надо, мне лень, не стоит оно того. в общем всего то надо правильно заголовки отрезать и приклеивать. В инете валялись скрипты для проигрывания в флеш плеерах с перемоткой, тут почти тоже самое надо делать. Наверное даже без 5 минут готовый найти можно. но тут напильника у меня нет :) .

Share this post


Link to post
Share on other sites

- А Вы и есть за меня будете ?

- Ага

© мультик

 

 

У меня 3.1 сквид и 1.2 нгинкс кеш пиром под сие стоит.

Насколько я припоминаю надо еще в список уникальных ключей для хранения добавить рендж (это такой параметр, как и id и itag

proxy_store "/usr/local/www/nginx_cache/files/id=$arg_id.itag=$arg_itag";

в примере по ссылке выше а не заголовок.) и algorithm. т.е. в конце перед " добавить

 

.range=$arg_range.algo=$arg_algorithm

Ну и везде, где оно есть. Иногда идут запросы без ренджа, по всей видимости это какая то качалка роликов, таким можно сделать внешнюю тулзу для генерации файла без ренджа из кучи с ренджами и наоборот, и добавить ее в середину try_files. но тут програмить надо, мне лень, не стоит оно того. в общем всего то надо правильно заголовки отрезать и приклеивать. В инете валялись скрипты для проигрывания в флеш плеерах с перемоткой, тут почти тоже самое надо делать. Наверное даже без 5 минут готовый найти можно. но тут напильника у меня нет :) .

Т.е. постоянно дорабатывать и держать руку на пульсе

Share this post


Link to post
Share on other sites

По поводу GGC всё довольно просто, либо вы генерируете достаточно траффика и тогда GGC ставится вам в сеть, либо настраивайте пиринг на ближайшем IXP.

Edited by Ося

Share this post


Link to post
Share on other sites

а есть у кого по России уже практика применения этого GGC ?

Q: Can I talk about GGC with my customers and peers? Can I include references to GGC in my marketing collateral?

 

A: In short, no. We'll ask your company to consider this agreement and associated activity to be commercially confidential while the Google Global Cache solution remains in beta.

Share this post


Link to post
Share on other sites

А что отвечать товарисчам из прокуратуры например на вопрос блокировки Невинности мусульман?

Share this post


Link to post
Share on other sites

А что отвечать товарисчам из прокуратуры например на вопрос блокировки Невинности мусульман?

Блокировать :)

 

Да, придется весь http гнать через DPI :(

Share this post


Link to post
Share on other sites

а что именно блокировать? веб-морда ютуба сейчас редиректится на https (никаких усилий для этого не делал, оно само). конкретный url на конкретном кеше будете резать?

Share this post


Link to post
Share on other sites

Блокировать урлы, которые укажет прокурор. Насчет https - возможно, вы залогинены в акккаунт гугля. Для анонимусов никакого редиректа нет.

Share this post


Link to post
Share on other sites

Апнем тему. Хочу настроить кеширование youtube.

 

Кто использует - поделитесь информацией как оно работает? Интересует именно схема организации связи и какое количество хитов получается?

Самый важный вопрос если видеофайл скачан, кешируется ли он для всех? Или, строго формулируя, генерирует ли гугль постоянный идентификатор файла чтобы потом его можно было воспроизвести всем остальным?

 

Посмотрел это: http://code.google.com/p/youtube-cache/

 

Как я понял там приведено несколько разных вариантов с использованием SQUID, NGINX, PHP. Я хочу переписать все на чистом NGINX.

Share this post


Link to post
Share on other sites

У меня стоит корпоративный сквид. Ютубный трафик заворачивает в нгинкс. В данной схеме без всеобщего сквида будет сложно все возможные *.c.youtube.com загнать в нгинкс. Все остальное не поменяется. Для загона, наверное, можно поднять свою зону, но это не поможет от 8.8.8.8.

 

Хитов.. до 20 процентов, корпорат со 150Мбит трафика через сквид.

 

Кешится не ролик, а кусок ролика. там есть поле в гет запросе с и до (range). Кеш регулярно грохатеся, все что старше 2-х недель (atime, т.е. небыло обращений на просмотр, а мтайм там вообще с сервера) - не вижу смысла хранить дольше.

 

Соответственно разные файлы под разные разрешения. некоторые клиенты, помоему какие то телефоны, тянут целиком, т.е от и до нету в гет параметре, соответственно это тоже отдельно.

 

в нгинксе собран модуль let, чтобы разливать файлики по поддиректориям (2 символа от sha1 от урла) иначе получается слишком много файлов на директорию, в принципе можно и 2 уровня было сделать.

 

Ну както так...

 

 set $zstore "HIT";
 location / {
   set $surl "/id=$arg_id.itag=$arg_itag.range=$arg_range.algo=$arg_algorithm";
   let $sd substr( sha1( $surl ) 0 2 );
   root /cache/nginx_stores/youtube;
   try_files "/$sd$surl" @proxy_youtube;
 }

 location @proxy_youtube {
   resolver 127.0.0.1;
   set $surl "/id=$arg_id.itag=$arg_itag.range=$arg_range.algo=$arg_algorithm";
   let $sd substr( sha1( $surl ) 0 2 );
   proxy_pass http://$host$request_uri;
   proxy_temp_path "/cache/nginx_stores/tmp";
   proxy_store "/cache/nginx_stores/youtube/$sd$surl";

   proxy_set_header X-YouTube-Cache "aaa@aaa.aa";
   proxy_set_header Accept "video/*";
   proxy_set_header User-Agent "YouTube Cacher (nginx)";
   proxy_set_header Accept-Encoding "";
   proxy_set_header Accept-Language "";
   proxy_set_header Accept-Charset "";
   proxy_set_header Cache-Control "";
#    proxy_set_header Range "";
   proxy_ignore_client_abort off;
   set $zstore "MISS";
 }

 

$zstore пишется в лог, для отчетности.

 

В принципе, с минимальными изменениями, на соседнем порту кешится винапдейт, там в дни выхода апдецйтов 99.9% попадания :) но есть проблема, оно качает кускам с Range в заголовке, а не в параметрах, нгинкс тянет все целиком, и иногда один клиент умудряется запросить 2,3,4,5 итд кусок пока первый файл не вынулся. высавил limit_conn 1 и все, не попавшее в лимит отдаю некешируемо. но клиентов много, оно все равно очень хорошо выходит. .. Пробовал кешить вконтакт. оно конечно кешится, но выхлоп 0.0, 99% мелкие картинки которых тьма, а видео (у меня) почти небыло хитов..

Share this post


Link to post
Share on other sites

Корпораты ставят WSUS и не парятся, а получают профиты в виде обновлений которые всем остальным не приезжают, и наоборот в отсутствии глупых обновлений которые всем приезжают, плюс отчётность и управляемость.

Share this post


Link to post
Share on other sites

 

 

В принципе, с минимальными изменениями, на соседнем порту кешится винапдейт, там в дни выхода апдецйтов 99.9% попадания :) но есть проблема, оно качает кускам с Range в заголовке, а не в параметрах, нгинкс тянет все целиком, и иногда один клиент умудряется запросить 2,3,4,5 итд кусок пока первый файл не вынулся. высавил limit_conn 1 и все, не попавшее в лимит отдаю некешируемо. но клиентов много, оно все равно очень хорошо выходит. .. Пробовал кешить вконтакт. оно конечно кешится, но выхлоп 0.0, 99% мелкие картинки которых тьма, а видео (у меня) почти небыло хитов..

А по объему хранилища где лежик кэш видео, как оно растет и примерные его объемы?

 

если трафику в сумме к примеру пару гигабит, то зарулить весь ютубовский трафик (по их AS -> ipset dst) на какую-нибудь кэширующую тачку, то какое предположительно по объему нужно хранилище и по производительности сама машина?

Share this post


Link to post
Share on other sites

Кстати, при заполненном кеше, я заметил поведение у некоторых железок - первый раз не кеширует. Второй раз тянет - если контент кешируемый - уже кеширует.

Очень даже разумно, чтобы не вытеснять полезное.

Огромное значение имеет производительность дисковой подсистемы. Почти все самосборные кеши умирают именно по этому параметру, если траффик превышает сотню мегабит.

Решение - быстрые контроллеры SATA + кеш на SSD, либо SAS.

И еще, если будет использоваться nginx -очень важно его научить tproxy. Ютуб очень не любит, если запрос на видео и на скрипты приходит с разных адресов, и банально банит IP адреса в конечном счете.

По ютубу - я могу собрать примеры запросов, и по косточкам можем их тут разложить.

Share this post


Link to post
Share on other sites

ну свои параметры я описал, трафика немного, и т.к. сквид (через ручную/автоматическую настроку), то тпрокси нетреба :) а так да, на малом объеме памяти или меделнных дисках, естественно, воткнет.

 

Еще насчет ютуба. Можно еще заморочиться и склеить куски и резать по запросу.

 

А всус. вещь конечно хорошая, но я виндами не занимаюсь последнее время совсем, а что там в их отделе, мне не интересно, к ним со своим уставом не лазю. Кешить начал исключительно потому что вот оно, готовое решение.

Share this post


Link to post
Share on other sites

st_re

 

У вас squid и nginx на одном IP?

 

nuclearcat, а что если проксировать и видео и скрипты? Проблема только с https?

 

Кстати, у меня клиенты проксируются в небольшой пул реальных IP, ничего не мешает запроксировать так же и кеш-сервер. У гугля хватит ума не банить запросы приходящие с пары-тройки соседних IP?

Share this post


Link to post
Share on other sites

зависит от количества запросов. У меня была выделена /24 и по 8 адресов единовременно, и их постоянно приходилось менять.

Share this post


Link to post
Share on other sites

зависит от количества запросов. У меня была выделена /24 и по 8 адресов единовременно, и их постоянно приходилось менять.

 

А что ты делал?

Share this post


Link to post
Share on other sites

А вот что я вижу в GET запросе к ютубу. Оставлю для истории.

 

algorithm:throttle-factor
burst:40
cp:U0hUTllQT19KU0NONF9RSlNFOk1JVWR2RkdxOXdE
cpn:YF0G-IzPjf34lK4p
expire:1359951459
factor:1.25
fexp:927900,910100,916807,904312,916624,920704,912806,922403,922405,929901,913605,925710,906938,920201,913302,919009,911116,910221,901451,919114
id:a9de8eb51a31f55f
ip:37.221.176.24
ipbits:8
itag:34
keepalive:yes
key:yt1
ms:au
mt:1359927553
mv:m
newshard:yes
range:5345280-7127039
ratebypass:yes
signature:8B8468E7FB9226892CC3C62BF3365EF0D7DE0F81.75581EFDF8CF27B1552CA5FAF55961118DEACC60
source:youtube
sparams:algorithm,burst,cp,factor,id,ip,ipbits,itag,source,upn,expire
sver:3
upn:jJ9y1ewPYYQ

 

 

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

Интересная штучка - IP, очевидно передается IP адрес источника. Можно что нибудь замутить.

 

st_re, DNS редирект на зону *.bla.bla на микротике делается одной строчкой. Для теста более чем достаточно.

 

У меня вопрос, у вас настроен nginx как кеш пир по этой доке?

http://youtube-cache.googlecode.com/svn/trunk/squid/youtube_cache_peer.conf

Share this post


Link to post
Share on other sites

А что ты делал?

 

Покупали какое-то решение, платное, довесок к сквиду. Работало мягко говоря хреново.

itag кстати разрешение видео/качество.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this