Jump to content

Recommended Posts

  • Replies 51
  • Created
  • Last Reply

Top Posters In This Topic

Posted (edited)

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

 

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

 

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

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

 

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

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

Edited by Traskalata
Posted

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

- Ага

© мультик

 

 

У меня 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 минут готовый найти можно. но тут напильника у меня нет :) .

Posted

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

- Ага

© мультик

 

 

У меня 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 минут готовый найти можно. но тут напильника у меня нет :) .

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

Posted (edited)

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

Edited by Ося
  • 2 months later...
Posted

а есть у кого по России уже практика применения этого 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.

Posted

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

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

 

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

Posted

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

Posted

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

  • 3 months later...
Posted

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

 

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

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

 

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

 

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

Posted

У меня стоит корпоративный сквид. Ютубный трафик заворачивает в нгинкс. В данной схеме без всеобщего сквида будет сложно все возможные *.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% мелкие картинки которых тьма, а видео (у меня) почти небыло хитов..

Posted

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

Posted

 

 

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

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

 

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

Posted

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

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

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

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

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

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

Posted

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

 

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

 

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

Posted

st_re

 

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

 

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

 

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

Posted

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

 

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

Posted

А вот что я вижу в 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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.