Caching Youtube
Puas rasanya, akhirnya bisa caching youtube (dan yang similar) :D.
Setelah sekian bulan “mangkrak” akhirnya jalan juga walau masih di mesin virtualbox.
Howto ini bukan untuk para pembenci youtube dan googlemap.
Tapi untuk youtube dan googlemap lovers.
bahan referensi yang jadi bacaan.
http://www.mail-archive.com/squid-users@squid-cache.org/msg54605.html
http://www.mail-archive.com/squid-users@squid-cache.org/msg51076.html
http://wiki.squid-cache.org/Features/StoreUrlRewrite
http://wiki.squid-cache.org/Features/StoreUrlRewrite/RewriteScript
Versi yang saya pakai adalah squid-2.7.STABLE3, tidak tahu dukungan untuk versi yang lain.
- buat script untuk manipulasi youtube.
#!/usr/bin/perl $|=1; while (<>) { @X = split; $url = $X[0]; $url =~s@^http://(.*?)/get_video\?(.*)video_id=(.*?)&.*@squid://videos.youtube.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/get_video\?(.*)video_id=(.*?)$@squid://videos.youtube.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/videodownload\?(.*)docid=(.*?)$@squid://videos.google.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/videodownload\?(.*)docid=(.*?)&.*@squid://videos.google.INTERNAL/ID=$3@; print "$url\n"; } - Lalu di squid.conf-nya edit seperti yang dibawah ini:
acl store_rewrite_list url_regex ^http://(.*?)/get_video\? acl store_rewrite_list url_regex ^http://(.*?)/videodownload\? cache allow store_rewrite_list # Had to uncomment this again, because I couln'd login to google mail using IE6 (firefox had no trouble): acl QUERY urlpath_regex cgi-bin \? cache deny QUERY refresh_pattern ^http://(.*?)/get_video\? 10080 90% 999999 override-expire ignore-no-cache ignore-private refresh_pattern ^http://(.*?)/videodownload\? 10080 90% 999999 override-expire ignore-no-cache ignore-private storeurl_access allow store_rewrite_list storeurl_access deny all storeurl_rewrite_program /usr/local/bin/store_url_rewrite
Hasilnya bisa dilihat di access-log, pada saat mengakses video yang sama, akan langsung hit.
# grep youtube access.log | grep TCP_HIT 1214834411.379 735 192.168.1.89 TCP_HIT/200 1604459 GET http://youtube.com/get_video?video_id=2d55B-SiJdM&t=OEgsToPDskKrwAAE_vVIhOqMhPqmPDUQ - NONE/- video/flv 1214834487.090 818 192.168.1.94 TCP_HIT/200 1604459 GET http://youtube.com/get_video?video_id=2d55B-SiJdM&t=OEgsToPDskLGVqEnxKjLEN4DGA3HYGse - NONE/- video/flv 1214836269.353 4383 192.168.1.91 TCP_HIT/200 9533167 GET http://youtube.com/get_video?video_id=i6cKRT12jgw&t=OEgsToPDskKeQxYVvYZ7fgEIW4UNC_U- - NONE/- video/flv 1214836514.802 3757 192.168.1.91 TCP_HIT/200 9533167 GET http://youtube.com/get_video?video_id=i6cKRT12jgw&t=OEgsToPDskIEwsTb26LiGFc96hBUUa9Z - NONE/- video/flv
Satu pesan dari Horacio Herrera Gonzalez, karena basic scriptnya tidak spesifik ke url tertentu, maka :
Warning! This code may match other sites not related to YT or GV.
He he he he, watching your bandwidth.
Karena beberapa user merasa kesulitan untuk mengaplied caching youtube.
Langkah dibawah adalah urutan di server saya.
- Saya pakai distro TSL 3.05, dengan squid squid-2.7.STABLE3
-
./configure \ --sysconfdir=/etc/squid \ --prefix=/usr \ --enable-async-io \ --enable-removal-policies=lru,heap \ --disable-delay-pools \ --disable-wccp \ --disable-wccp2 \ --enable-kill-parent-hack \ --enable-snmp \ --enable-default-err-languages=English --enable-err-languages=English \ --enable-linux-netfilter \ --disable-auth
- config hasil parsing ^# dari squid.conf
acl all src all acl manager proto cache_object acl localhost src 127.0.0.1/32 acl to_localhost dst 127.0.0.0/8 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localnet http_access deny all icp_access allow localnet icp_access deny all http_port 3128 transparent hierarchy_stoplist cgi-bin ? cache_mem 6 MB maximum_object_size_in_memory 32 KB memory_replacement_policy heap GDSF cache_replacement_policy heap LFUDA cache_dir aufs /nfs/cache 20000 16 256 maximum_object_size 64 MB cache_swap_low 98 cache_swap_high 99 access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log cache_store_log none log_fqdn off storeurl_rewrite_program /etc/squid/store_url_rewrite acl store_rewrite_list url_regex ^http://(.*?)/get_video\? acl store_rewrite_list url_regex ^http://(.*?)/videodownload\? storeurl_access allow store_rewrite_list storeurl_access deny all cache allow store_rewrite_list acl QUERY urlpath_regex cgi-bin \? cache deny QUERY refresh_pattern ^http://(.*?)/get_video\? 10080 90% 999999 override-expire ignore-no-cache ignore-private refresh_pattern ^http://(.*?)/videodownload\? 10080 90% 999999 override-expire ignore-no-cache ignore-private refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 quick_abort_min 0 quick_abort_max 0 quick_abort_pct 98 acl apache rep_header Server ^Apache broken_vary_encoding allow apache vary_ignore_expire on cache_effective_user squid cache_effective_group squid log_icp_queries off ipcache_size 2048 ipcache_low 98 ipcache_high 99 memory_pools off reload_into_ims on coredump_dir /usr/var/cache pipeline_prefetch on
Caching photobucket
Kontribusi apit (Ym-id relative_04), caching untuk photobucket yang banyak di pakai di friendster.
di store_url_rewrite
$url =~s@^http://(.*?)/albums\?&.*@squid://images.photobucket.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/albums\?$@squid://images.photobucket.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/albums\?&.*@squid://videos.photobucket.INTERNAL/ID=$3@; $url =~s@^http://(.*?)/albums\?$@squid://videos.photobucket.INTERNAL/ID=$3@;
di squid.conf
acl store_rewrite_list url_regex ^http://i(.*?).photobucket.com/albums/(.*?)/(.*?)/(.*?)\? acl store_rewrite_list url_regex ^http://vid(.*?).photobucket.com/albums/(.*?)/(.*?)\? refresh_pattern ^http://i(.*?).photobucket.com/albums/(.*?)/(.*?)/(.*?)\? 43200 90% 999999 override-expire ignore-no-cache ignore-private refresh_pattern ^http://vid(.*?).photobucket.com/albums/(.*?)/(.*?)\? 43200 90% 999999 override-expire ignore-no-cache ignore-private
Hasilnya
TCP_HIT/200 5474813 GET http://vid264.photobucket.com/albums/ii163/shannonwiseman12/DSCN0212.flv - NONE/- text/plain
Update script
Diperkirakan youtube merubah sistem mereka, sekitar quartal pertama tahun 2009.
Akibatnya script diatas sudah tidak berfungsi, untuk mengatasinya perlu diubah script dan beberapa bagian di konfigurasi.
Untung saja sudah ada panduannya di http://wiki.squid-cache.org/ConfigExamples/DynamicContent/YouTube/Discussion
konfigurasi di bawah saya coba dimesin vmware dengan os centos 5.2, juli 2009
Untuk mempermudah saya sertakan squid.conf yang sudah dimodifikasi dan script url rewriternya.
acl all src all acl manager proto cache_object acl localhost src 127.0.0.1/32 acl to_localhost dst 127.0.0.0/8 acl localnet src 10.0.0.0/8 acl localnet src 172.16.0.0/12 acl localnet src 192.168.0.0/16 acl SSL_ports port 443 acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 acl Safe_ports port 70 acl Safe_ports port 210 acl Safe_ports port 1025-65535 acl Safe_ports port 280 acl Safe_ports port 488 acl Safe_ports port 591 acl Safe_ports port 777 acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localnet http_access deny all icp_access allow localnet icp_access deny all http_port 3128 transparent hierarchy_stoplist cgi-bin ? cache_mem 6 MB maximum_object_size_in_memory 32 KB memory_replacement_policy heap GDSF cache_replacement_policy heap LFUDA cache_dir aufs /cache 20000 16 256 maximum_object_size 64 MB cache_swap_low 98 cache_swap_high 99 access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log cache_store_log none log_fqdn off #storeurl_rewrite_program /etc/squid/store_url_rewrite #acl store_rewrite_list url_regex ^http://(.*?)/get_video\? #acl store_rewrite_list url_regex ^http://(.*?)/videoplayback\? acl store_rewrite_list urlpath_regex \/(get_video\?|videodownload\?|videoplayback.*id) \.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv)\? \/ads\? acl store_rewrite_list_web url_regex ^http:\/\/([A-Za-z-]+[0-9]+)*\.[A-Za-z]*\.[A-Za-z]* acl store_rewrite_list_path urlpath_regex \.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv)$ acl store_rewrite_list_web_CDN url_regex ^http:\/\/[a-z]+[0-9]\.google\.com doubleclick\.net acl QUERY2 urlpath_regex get_video\? videoplayback\? \.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv)\? cache allow QUERY2 cache allow store_rewrite_list_web_CDN acl QUERY urlpath_regex cgi-bin \? cache deny QUERY storeurl_access allow store_rewrite_list #this is not related to youtube video its only for CDN pictures storeurl_access allow store_rewrite_list_web_CDN storeurl_access allow store_rewrite_list_web store_rewrite_list_path storeurl_access deny all #rewrite_program path is base on windows so use use your own path storeurl_rewrite_program /etc/squid/cacheyoutube2.pl storeurl_rewrite_children 1 storeurl_rewrite_concurrency 10 refresh_pattern ^http://(.*?)/get_video\? 10080 90% 999999 override-expire ignore-no-cache ignore-private refresh_pattern ^http://(.*?)/videoplayback\? 10080 90% 999999 override-expire ignore-no-cache ignore-private refresh_pattern -i (get_video\?|videoplayback\?id|videoplayback.*id) 161280 50000% 525948 override-expire ignore-reload #and for pictures refresh_pattern -i \.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv)(\?|$) 161280 3000% 525948 override-expire reload-into-ims refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 quick_abort_min 0 quick_abort_max 0 quick_abort_pct 98 acl apache rep_header Server ^Apache broken_vary_encoding allow apache vary_ignore_expire on cache_effective_user squid cache_effective_group squid log_icp_queries off ipcache_size 2048 ipcache_low 98 ipcache_high 99 memory_pools off reload_into_ims on coredump_dir /usr/var/cache pipeline_prefetch on
sedangkan untuk storeurl programnya sebagai berikut
isi file cacheyoutube2.pl
#!/usr/bin/perl
$|=1;
while (<>) {
@X = split;
$x = $X[0];
$_ = $X[1];
$u = $X[1];
if (m/^http:\/\/([0-9.]{4}|www\.youtube\.com|.*\.googlevideo\.com|.*\.video\.google\.com).*?(videoplayback\?id=.*?|video_id=.*?)\&(.*?)/) {
$z = $2; $z =~ s/video_id=/get_video?video_id=/; # compatible to old cached get_video?video_id
print $x . "http://video-srv.youtube.com.SQUIDINTERNAL/" . $z . "\n";
# new youtube
} elsif (m/^http:\/\/([0-9.]{4}|www\.youtube\.com|.*\.googlevideo\.com|.*\.video\.google\.com).*?\&(id=[a-zA-Z0-9]*)/) {
print $x . "http://video-srv.youtube.com.SQUIDINTERNAL/" . $2 . "\n";
} elsif (m/^http:\/\/www\.google-analytics\.com\/__utm\.gif\?.*/) {
print $x . "http://www.google-analytics.com/__utm.gif\n";
#cache high latency ads
} elsif (m/^http:\/\/(.*?)\/(ads)\?(.*?)/) {
print $x . "http://" . $1 . "/" . $2 . "\n";
# spicific servers starts here....
} elsif (m/^http:\/\/(www\.ziddu\.com.*\.[^\/]{3,4})\/(.*?)/) {
print $x . "http://" . $1 . "\n";
#rapidshare
} elsif ( ($u =~ /rapidshare/) && (m/^http:\/\/(([A-Za-z]+[0-9-.]+)*?)([a-z]*\.[^\/]{3}\/[a-z]*\/[0-9]*)\/(.*?)\/([^\/\?\&]{4,})$/)) {
print $x . "http://cdn." . $3 . "/SQUIDINTERNAL/" . $5 . "\n";
} elsif ( ($u =~ /maxporn/) && (m/^http:\/\/([^\/]*?)\/(.*?)\/([^\/]*?)(\?.*)?$/)) {
# $z = $1; $z =~ s/[A-Za-z]+[0-9-.]+/cdn/;
print $x . "http://" . $1 . "/SQUIDINTERNAL/" . $3 . "\n";
#like porn hub variables url and center part of the path, filename etention 3 or 4 with or withour ? at the end
} elsif ( ($u =~ /tube8|pornhub/) && (m/^http:\/\/(([A-Za-z]+[0-9-.]+)*?)\.([a-z]*[0-9]?\.[^\/]{3}\/[a-z]*)(.*?)((\/[a-z]*)?(\/[^\/]*){4}\.[^\/\?]{3,4})(\?.*)?$/)) {
print $x . "http://cdn." . $3 . $5 . "\n";
#...spicific servers end here.
#general purpose for cdn servers. add above your specific servers.
} elsif (m/^http:\/\/([0-9.]*?)\/\/(.*?)\.(.*)\?(.*?)/) {
print $x . "http://squid-cdn-url//" . $2 . "." . $3 . "\n";
#for yimg.com
} elsif (m/^http:\/\/(.*?)\.yimg\.com\/(.*?)\.yimg\.com\/(.*?)\?(.*?)/) {
print $x . "http://cdn.yimg.com/" . $3 . "\n";
#generic http://variable.domain.com/path/filename."ext" or "exte" with or withour "?"
} elsif (m/^http:\/\/( ([A-Za-z]+[0-9-.]+)*?)\.(.*?)\.(.*?)\/(.*?)\.([^\/\?\&]{3,4})(\?.*)?$/) {
print $x . "http://cdn." . $3 . "." . $4 . "/" . $5 . "." . $6 . "\n";
# generic http://variable.domain.com/...
} elsif (m/^http:\/\/( ([A-Za-z]+[0-9-.]+)*?)\.(.*?)\.(.*?)\/(.*)$/) {
print $x . "http://cdn." . $3 . "." . $4 . "/" . $5 . "\n";
# spicific extention that ends with ?
} elsif (m/^http:\/\/(.*?)\/(.*?)\.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv|on2)\?(.*)/) {
print $x . "http://" . $1 . "/" . $2 . "." . $3 . "\n";
# all that ends with ;
} elsif (m/^http:\/\/(.*?)\/(.*?)\;(.*)/) {
print $x . "http://" . $1 . "/" . $2 . "\n";
} else {
print $x . $_ . "\n";
}
}
Jangan lupa di chmod +x agar file perl-nya bisa di exekusi.

[...] di bawah ini saya memakai squid dari caching youtube. Ide dari pemakaian ZPH ini adalah ketika memutar video dari youtube, masih terjadi delay karena [...]
selamat pagi..
berikut ini merupakan hasil dari cache.log yang dihasilkan pada saat saya mencoba mengimplementasikan “caching youtube”
helperOpenServers: Starting 5 ’store_url_rewrite’ processes
2009/01/17 02:41:00| ipcCreate: CHILD: c:/squid/sbin/store_url_rewrite: (8) Exec format error
2009/01/17 02:41:00| ipcCreate: PARENT: OK read test failed
2009/01/17 02:41:00| –> read returned 4
2009/01/17 02:41:00| –> got ‘ERR
‘
2009/01/17 02:41:00| WARNING: Cannot run ‘c:/squid/sbin/store_url_rewrite’ process.
2009/01/17 02:41:00| ipcCreate: CHILD: c:/squid/sbin/store_url_rewrite: (8) Exec format error
2009/01/17 02:41:00| ipcCreate: PARENT: OK read test failed
2009/01/17 02:41:00| –> read returned 4
2009/01/17 02:41:00| –> got ‘ERR
‘
2009/01/17 02:41:00| WARNING: Cannot run ‘c:/squid/sbin/store_url_rewrite’ process.
2009/01/17 02:41:00| ipcCreate: CHILD: c:/squid/sbin/store_url_rewrite: (8) Exec format error
2009/01/17 02:41:00| ipcCreate: PARENT: OK read test failed
2009/01/17 02:41:00| –> read returned 4
2009/01/17 02:41:00| –> got ‘ERR
‘
2009/01/17 02:41:00| WARNING: Cannot run ‘c:/squid/sbin/store_url_rewrite’ process.
2009/01/17 02:41:00| ipcCreate: CHILD: c:/squid/sbin/store_url_rewrite: (8) Exec format error
2009/01/17 02:41:00| ipcCreate: PARENT: OK read test failed
2009/01/17 02:41:00| –> read returned 4
sata gunakan squidNT 2.7 stab5…mohoon kiranya dapat di review..
bila anda berkenan, mohon balas lewat email di tawon_cbr@yahoo.co.id
dan saya mohon juga sekiranya bapak dapat menganalisa squid.conf yg saya gunakan (akan saya atach via email) jika bapak berkenan..khususnya pada konfigurasi caching dan delay pools..karena saya juga menyertakan squid pada tugas akhir saya…
atas bantuan, tanggapan dan respon yang membangun saya khaturkan terima kasih
ganda derita
script store_url_rewrite, mempergunakan bahasa perl,
pastikan aplikasi perl sudah terinstall di windows NT
btw, untuk mengaplikasikan caching youtube ini harus menggunakan mikrotik juga ?? bagimana dengan SquidNT yang berjalan madiri alias ga disandingkan dengan mikrotik, apakah bisa juga di aplikasikan…
mohooooooooooon banget keterangan dan penjeasannya kalo bisa ma jalan keluarnya juga
thankssssssssss bangeeeeeeeeeeet
Tidak harus mempergunakan mikrotik.
Untuk caching youtube tidak ada hubungannnya dengan router yang dipakai.
saya sudah install perl5.10 dan juga saya sudah mengimplementasikan konfigurasi squid yang ada, mengikuti keadaan windows yg saya gunakan..tapi masih saja pesan seperti di atas muncul…mohon solusinya…mohon maaf selalu bertanya…. karena saya ingin belajar tapi tidak tahu…mohon bimbingannya…
atas responya saya khaturkan terima kasih
(perl sudah di intergrasikan pada “path” windows)
aduh mas….malah ga bisa buka youtube, kalo situs laen lancar aja…tapi kalo dah buka yutub, di player videonya muncul “sorry the video not aviable” kemudian akan muncul pesan error browser “proxy tidak ditemukan”
kalo pada baris storeurl_rewrite_program /etc/squid/store_url_rewrite
di beri comment…yutubnya bisa kebuka……..
apa SQUIDNT ga bisa utk caching youtube ya ????
(~”) hikzzz
pakai microsoft ya.
Coba ikuti panduan yang disini, mungkin owner-nya bisa membantu.
http://www.kutukupret.com/2008/10/09/next-di-posting-lagi-speedy-quota-1g-winxplaptop-squid-bind9-cache-youtube/
Mungkin tidak ada kenyamanan utk windows…HIK HIKLzzz…Miss tok mas………
pakai squid windows versi brp?
log squid nya gimana?ada error apa?
SquidNT 2.7 stable 5
lognya gada error…mungkin besok tak kulik ulang lagi…thanks utk elmunya…kalo ada perubahan ntar tak post lagi gpp khan ????
1125 192.168.0.7 TCP_MISS/200 738 POST http://98.136.112.140/ – DIRECT/98.136.112.140 -
1232871960.734 1188 192.168.0.7 TCP_MISS/200 1285 POST http://98.136.112.140/ – DIRECT/98.136.112.140 -
1232871961.890 1140 192.168.0.7 TCP_MISS/200 535 POST http://98.136.112.140/ – DIRECT/98.136.112.140 -
1232871964.359 2469 192.168.0.7 TCP_MISS/200 1244 POST http://98.136.112.140/ – DIRECT/98.136.112.140 -
1232871964.734 125 127.0.0.1 TCP_OFFLINE_HIT/200 2800 GET http://i2.ytimg.com/vi/-GrrPeENLc4/default.jpg – NONE/- image/jpeg
1232871964.937 94 127.0.0.1 TCP_OFFLINE_HIT/200 2844 GET http://i4.ytimg.com/vi/gH3vyN0iTsU/default.jpg – NONE/- image/jpeg
1232871965.406 516 127.0.0.1 TCP_OFFLINE_HIT/200 4358 GET http://i3.ytimg.com/vi/vOSKbeTOl0A/default.jpg – NONE/- image/jpeg
1232871965.406 516 127.0.0.1 TCP_OFFLINE_HIT/200 2918 GET http://i4.ytimg.com/vi/KbmMXjVIBRA/default.jpg – NONE/- image/jpeg
1232871965.421 484 127.0.0.1 TCP_OFFLINE_HIT/200 3040 GET http://i1.ytimg.com/vi/tYxEzxoVToU/default.jpg – NONE/- image/jpeg
1232871965.421 484 127.0.0.1 TCP_OFFLINE_HIT/200 2314 GET http://i2.ytimg.com/vi/Ad7A4RZM37Y/default.jpg – NONE/- image/jpeg
1232871965.421 484 127.0.0.1 TCP_OFFLINE_HIT/200 3530 GET http://i3.ytimg.com/vi/F-q4SyFAW3w/default.jpg – NONE/- image/jpeg
1232871965.515 94 127.0.0.1 TCP_OFFLINE_HIT/200 3356 GET http://i1.ytimg.com/vi/4wnjR6MM38k/default.jpg – NONE/- image/jpeg
1232871965.515 47 127.0.0.1 TCP_OFFLINE_HIT/200 3751 GET http://i2.ytimg.com/vi/ukgaB8UTIBs/default.jpg – NONE/- image/jpeg
1232871965.515 47 127.0.0.1 TCP_OFFLINE_HIT/200 2697 GET http://i2.ytimg.com/vi/QrtZvZrJM1g/default.jpg – NONE/- image/jpeg
1232871965.515 47 127.0.0.1 TCP_OFFLINE_HIT/200 2604 GET http://i1.ytimg.com/vi/0pdhsnf3Zpw/default.jpg – NONE/- image/jpeg
1232871965.515 47 127.0.0.1 TCP_OFFLINE_HIT/200 2540 GET http://i3.ytimg.com/vi/nTERF89Pb6g/default.jpg – NONE/- image/jpeg
1232871965.531 16 127.0.0.1 TCP_OFFLINE_HIT/200 3318 GET http://i4.ytimg.com/vi/7tEUXFSiHF8/default.jpg – NONE/- image/jpeg
1232871965.531 0 127.0.0.1 TCP_OFFLINE_HIT/200 1898 GET http://i4.ytimg.com/vi/c4ZLnPMYqwg/default.jpg – NONE/- image/jpeg
1232871965.562 31 127.0.0.1 TCP_OFFLINE_HIT/200 2189 GET http://i2.ytimg.com/vi/9OuLrR3uJUg/default.jpg – NONE/- image/jpeg
1232871966.859 2500 192.168.0.7 TCP_MISS/000 0 POST http://98.136.112.140/ – DIRECT/98.136.112.140 -
1232871967.968 1078 192.168.0.7 TCP_MISS/200 2210 POST http://98.136.112.140/ – DIRECT/98.136.112.140 -
1232871968.671 15 127.0.0.1 TCP_OFFLINE_HIT/200 2800 GET http://i2.ytimg.com/vi/-GrrPeENLc4/default.jpg – NONE/- image/jpeg
1232871968.843 78 127.0.0.1 TCP_OFFLINE_HIT/200 3456 GET http://i2.ytimg.com/vi/A-BiO951yT4/default.jpg – NONE/- image/jpeg
1232871969.625 0 127.0.0.1 TCP_OFFLINE_HIT/200 3804 GET http://i3.ytimg.com/vi/JoG5duF1N64/default.jpg – NONE/- image/jpeg
1232871969.859 16 127.0.0.1 TCP_OFFLINE_HIT/200 3013 GET http://i2.ytimg.com/vi/5xylWSAoE70/default.jpg – NONE/- image/jpeg
1232871969.875 0 127.0.0.1 TCP_OFFLINE_HIT/200 4910 GET http://i2.ytimg.com/vi/9La40WwO-lU/default.jpg – NONE/- image/jpeg
1232871970.343 3828 127.0.0.1 TCP_MISS/200 15418 GET http://www.youtube.com/watch? – DIRECT/208.117.236.71 text/html
1232871970.906 1766 127.0.0.1 TCP_MISS/303 655 GET http://www.youtube.com/get_video? – DIRECT/208.117.236.71 text/html
1232871971.250 3250 192.168.0.7 TCP_MISS/200 1207 POST http://98.136.112.140/ – DIRECT/98.136.112.140 -
1232871972.437 1187 192.168.0.7 TCP_MISS/200 1366 POST http://98.136.112.140/ – DIRECT/98.136.112.140 -
1232871974.265 3797 127.0.0.1 TCP_MISS/200 30997 GET http://www.youtube.com/related_ajax? – DIRECT/208.117.236.71 text/xml
1232871974.453 172 127.0.0.1 TCP_OFFLINE_HIT/200 3408 GET http://i4.ytimg.com/vi/Sfumzm3XY5A/default.jpg – NONE/- image/jpeg
1232871974.578 2078 192.168.0.7 TCP_MISS/200 633 POST http://98.136.112.140/ – DIRECT/98.136.112.140 -
1232871974.593 140 127.0.0.1 TCP_OFFLINE_HIT/200 2579 GET http://i4.ytimg.com/vi/kmLjg3Zy0tk/default.jpg – NONE/- image/jpeg
1232871974.593 140 127.0.0.1 TCP_OFFLINE_HIT/200 2697 GET http://i2.ytimg.com/vi/QrtZvZrJM1g/default.jpg – NONE/- image/jpeg
1232871974.593 140 127.0.0.1 TCP_OFFLINE_HIT/200 2540 GET http://i3.ytimg.com/vi/nTERF89Pb6g/default.jpg – NONE/- image/jpeg
ada perubahan kayaknya om….ada beberapa video yg cepet load-nya contohnya video durasi 6 menit, loadnya hanya bekisar 7 detik (video ini pernah dibuka sebelumnya) namun ada juga yang loadnya lamaaaaaaa bget dan jg dah pernah dibuka sebelumnya….tapi ngetesnya baru buka sekitar 10 video gitu dan baru sekitar 3-4 video yg kayaknya bisa di cache oleh saya (127.0.0.1) maupun oleh client (client saya suruh buka video yg sama)dan WALLLAHHH…di client loadnya cepet juga, tapi masih ada beberapa video yg kayaknya ga diambil dari cache squid pada hal video tsb dah saya buka sebelumnya….
itu aja infonya sementara ini … kalo ada tambahan mohon kiranya diberikan petunjuk lain…
sebenarnya nge set squid/caching youtube/bind di windows malah lebih tricky.tapi kalo ngikutin step2nya teliti pasti jalan.yg penting kalau gak jalan liat lognya.say abuatnya ngambil referensi config squidnya dari human.network.web.id plus trial and error juga kok hehehe
Udah Jalan om………makasih banget…atas ilmu yg dah di share ini..
beguna banget utk usaha warnet dengan kecepatan dan bandwidth yg pas2an..
sekali lagi thanks A LOTTTTTTTTTTTTT….
Saya pernah pakai store_url_rewrite, kalau string URInya pakai IP, spt http://74.125.96.39/…., tidak bisa dicache, karena squid tidak melewatkan URI berupa IP ke store_url. Sptnya perlu dipatch di squidnya.
squidnya gak melewatkan Host URI yang berupa IP ke store_url_rewrite.
lebih berat karena double download. satu download untuk preview, satunya untuk di save ke cache nya videocache sebelum hit.
itu dia yang bikin males pake videocache.
punyaku muncul log gini
proxy# tail -f /var/log/squid/access.log | grep youtube
1235061241.783 2248 203.222.203.6 TCP_MISS/200 5043 GET http://www.youtube.com/set_awesome? – DIRECT/208.117.236.69 text/xml
1235061273.317 1648 203.222.203.6 TCP_MISS/200 18264 GET http://www.youtube.com/watch? – DIRECT/208.117.236.69 text/html
1235061276.002 846 203.222.203.6 TCP_MISS/303 577 GET http://www.youtube.com/get_video? – DIRECT/208.117.236.69 text/html
pake freebsd squid-2.7stable6
[...] di bawah ini saya memakai squid dari caching youtube. Ide dari pemakaian ZPH ini adalah ketika memutar video dari youtube, masih terjadi delay karena [...]
sejak saya buat chaching youtube, aneh.. zph dimikrotikku ggak berfungsi lagi..
mas firewaxx, dari tutor diatas, saya ambil kesimpulan awalnya ( newbie maklum ) apa betul delay pool tidak bisa berjalan paralel dengan squid zph yah ?
Mas koq miss terus ya apa yang salah???
1237375344.753 183037 192.168.111.2 TCP_MISS/200 2595761 GET http://v3.cache.googlevideo.com/videoplayback? – DIRECT/74.125.11.86 video/x-flv
maaf sedikit melenceng dari pembahasan….(malah sangat melenceng kali…maap,,maap)
begini kang saya sudah jalankan squid, saat squid berumur sekitar 2 mingguan, tiba2 aja Friendster ga bisa di “BUKA” maksudnya BLANK hanya ada tampilan putih polos..sedang kalo di akses dari email FS kadang ga da masalah…anehnya kalo dari http://www.friendster.com akan tetep BLANK…
mohon bantuannya, abis males tiap 2 miggu intall ulang squidnya…saya sekarang dah pake SME server mas…(BTW caching youtube di SME server belon berhasil nih)
thanks
Untuk yang versi 2.6 gimana bos?
Masalahe cachingnya udah banyak
Kalo di upgrade ke 2.7 bisa gak.
Aku pake ubuntu 7.10
Silaken upgrade ke versi 2.7
upgradenya gimana?
pake apt-get install squid
pasti dapetnya tetep 2.6
mmmm, kalau begitu upgradenya secara manual, harus kompile sendiri.
remove dulu paket squid yang lama, baru install squid v2.7
untuk instalasi-nya sama seperti instalasi squid versi yang lain
ganti repo nya sama repo kermic, disitu sdh squid 2.7 stable6. pake yg lokal biar cpt donlodnya…
saya pake ubuntu 8.10, tp reponya ambil dr ubuntu 9.10 dr ugm
mas… saya sudah update squid dari versi 2.6 menjadi 2.7 di Ubuntu 8.04 TLS, tapi koq masih gak mau cache video/images nya :(
oia.. saya update pake pake paketan .deb, apa harus di compile ulang aja untuk squid 2.7-nya?
trims..
iya nih…gimana penempatannya…klo bisa ditulis di sini squid.conf-nya
saya pakai squid 2.7 stable 6… muncul msg bgn neh…
Reloading WWW-proxy squid 2009/04/17 18:10:59| parseConfigFile: line 30 unrecognized: ’storeurl_rewrite_program /etc/squid/store_url_rewrite/’
2009/04/17 18:10:59| parseConfigFile: line 37 unrecognized: ’storeurl_access allow store_rewrite_list’
2009/04/17 18:10:59| parseConfigFile: line 38 unrecognized: ’storeurl_access deny all’
2009/04/17 18:11:01| parseConfigFile: line 30 unrecognized: ’storeurl_rewrite_program /etc/squid/store_url_rewrite/’
2009/04/17 18:11:01| parseConfigFile: line 37 unrecognized: ’storeurl_access allow store_rewrite_list’
2009/04/17 18:11:01| parseConfigFile: line 38 unrecognized: ’storeurl_access deny all’
done
kira’ masalah nya apa yach ?
Sepertinya salah penempatan file-nya, jadi filenya tidak dikenali
Pertanyaan newbie :). Kalau partisi cache squid sdh penuh dg object video youtube, apa perlu dihapus satu satu ? Atau secara otomatis squid akan menghapus object video yg sudah lama tidak diakses ?
Bisa dijelaskan angka2 di refresh_pattern di bawah ini ?
refresh_pattern ^http://(.*?)/get_video\? 10080 90% 999999 override-expire ignore-no-cache ignore-private
Karena ikut prosedure refresh pattern squid, “kudunya”, tiap obyek, baik itu video pasti ada umur kadaluarsa-nya
Koreksi bos.
Saat configure squid dg option ini:
–disable-wccp2 \
Dapat warning:
“configure: WARNING: Unrecognized options: –disable-wccp2″
Yang benar itu
–disable-wccpv2 \
Saya pakai squid-2.7STABLE6.
Terimakasih, koreksinya
sepetinya sudah nggak bisa di cache lagi ya?
quick workaround.
di script perl store_url_rewrite ubah jadi seperti ini:
di squid.conf:
saya test bisa meng-cache yg ada di google video
Terimakasih informasinya mas, saya coba dulu.
Saya perhatikan yang berubah dari videodownload berubah menjadi videoplayback.
Betul bung kutukupret dengan cara juga berhasil untuk caching youtube.
wah firewaxx sdh hebat!
salam dari teman lama.
udie
Halo mas udie :)
masi dibanjarmasin ?
mas, pak,.. susunan acl, refresh & script url rewrite nya yang tepat bagaimana….gambaran squid.conf saya :
##########
http_port 3128 transparent
icp_port 3130
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
#acl mconn maxconn 12
acl aclname snmp_community public
snmp_port 3401
snmp_access allow aclname
acl numeric_IPs url_regex ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
acl nettt src 192.168.0.0/24
acl piir src xxx.xxx.xx.xxx
acl local-dst dst xxx.xxx.xxx.xxx
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl youtube dstdomain -i .youtube.com
acl streaming url_regex -i get_video\?video_id videodownload\?
storeurl_rewrite_program /usr/local/squid/bin/store_url_rewrite
storeurl_rewrite_children 11
acl store_rewrite_list url_regex ^http://(.*?)/get_video\?
acl store_rewrite_list url_regex ^http://(.*?)/videodownload\?
acl store_rewrite_list url_regex ^http://i(.*?).photobucket.com/albums/(.*?)/(.*?)/(.*?)\?
acl store_rewrite_list url_regex ^http://vid(.*?).photobucket.com/albums/(.*?)/(.*?)\?
storeurl_access allow store_rewrite_list
storeurl_access deny all
cache allow youtube
cache allow streaming
cache allow store_rewrite_list
hierarchy_stoplist cgi-bin ? .js .jsp
acl QUERY urlpath_regex cgi-bin \? .js .jsp
cache deny QUERY
refresh_pattern ^http://(.*?)/get_video\? 10080 90% 999999 override-expire ignore-no-cache ignore-private
refresh_pattern ^http://(.*?)/videodownload\? 10080 90% 999999 override-expire ignore-no-cache ignore-private
refresh_pattern ^http://i(.*?).photobucket.com/albums/(.*?)/(.*?)/(.*?)\? 43200 90% 999999 override-expire ignore-no-cache ignore-private
refresh_pattern ^http://vid(.*?).photobucket.com/albums/(.*?)/(.*?)\? 43200 90% 999999 override-expire ignore-no-cache ignore-private
refresh_pattern ^ftp: 1440 95% 10080 reload-into-ims override-lastmod
refresh_pattern . 180 95% 4320 reload-into-ims override-lastmod
Saya lihat sepertinya sudah benar ?
ada masalah apa ya ?
atau kalau mau pakai susunan konfig yang saya tulis diblog ini juga jalan
Bro Human…
Makasih banget atas tutorialnya, akhirnya squid bisa meng-caching youtube…
saya menggunakan mikrotik dan squid, awalnya sih MISS melulu, tapi dengan niat dan usaha serta kemauan yang keras untuk bisa, akhirnya ter HIT juga… hehehe…
Ini berkat tutorial dari bro human, serta tutorial squid dari suhu Dani di forum.linux.or.id
Special Thanks buat bro human, suhu Dani, serta teman2 yang ada di forum.linux.or.id n forummikrotik.
kok ga bisa jalan dengan squidguard yah?
klo squidguard nya dimatiin baru bisa jalan
Maap belum pernah mencoba di gabung dengan squidguard.
Kalau hanya untuk menghilangkan banner/iklan, yang sudah pernah saya coba dengan adzaper.
Bro Human…
tentang caching youtube udah paham, yang jadi masalah, setelah beberapa hari atau beberapa minggu kok loading lagi yah ? misalnya saya buka youtube donald duck, besoknya masih bisa atau sampe beberapa hari juga masih bisa tanpa loading. Pas 2 atau beberapa hari kemudian, saya buka youtube judul donald duck yang sama lagi, kok loading lagi yah ? Padahal saya ikutin dengan cara seperti tutorial diatas.
Mohon pencerahan bro….
Kemungkinan besar filenya sudah di hapus dari cache. Sehingga harus load dari internet lagi.
Untuk mekanisme berapa lama file didalam cache saya belum paham betul.
Mas, script caching you tube ini sampai sekarang masih bisa dipakai? Soalnya terakhir saya coba bulan mei kemarin tidak berhasil sama sekali. Sempet mutung / frustasi kuatir ada perubahan di protokol youtube. Moga2 kali ini berhasil.
Mas arief memang ada perubahan di youtube.
Untuk mengatasi hal ini, perlu diadakan perubahan di skript dan squidnya. Mas arief bisa mengikuti dari url ini.
http://wiki.squid-cache.org/ConfigExamples/DynamicContent/YouTube/Discussion
Setelah lama menjadi obsesi, akhirnya berhasil ! Terimakasih banyak untuk mas kutu kupret untuk modifikasi squid.conf dan store_url_rewrite. Source squid pakai yang terbaru squid-2.7.STABLE6. Sudah saya coba di slackware 12.0 & ubuntu 8.04, dua-duanya berhasil:
Untuk tes saya buka klip video dg durasi di bawah 1 menit, maklum fakir bandwidth di sini:
http://www.youtube.com/watch?v=sSPP0wQslQo
access.log:
1246858158.668 10331 172.16.2.126 TCP_HIT/200 1244228 GET http://v9.lscache2.googlevideo.com/videoplayback? – NONE/- video/x-flv
Berbeda dengan tampilan access.log squid versi 2.7.STABLE3 yg banyak detail seperti ini contohnya:
1246622971.900 4098 172.16.2.126 TCP_MISS/404 317 GET http://v16.lscache3.googlevideo.com/videoplayback?ip=0.0.0.0&
sparams=id,expire,ip,ipbits,itag,burst,factor&itag=22&ipbits=0&signature=349B370E91CE2CE4278DF19A826BF0A9
94E859DC.D79B19C3A1411AC17072F2C3D976F75957E06544&sver=3&expire=1246647600&key=yt1&factor=1.25&burst=40&id=fd428b9dcb
c6c50f – DIRECT/74.125.98.38 text/plain
yg STABLE6 ini malahan sedikit sekali.
Lanjutin komen di atas. Ada beberapa situs, yang jika dibuka meski itu pertama kali mesti muncul error, spt link di bawah ini:
http://www.youtube.com/watch?v=MDkP2WaEYFE
Sebelum squid-nya dipatch dengan diff yg dicomot dari http://wiki.squid-cache.org/ConfigExamples/DynamicContent/YouTube/Discussion
Akhirnya buka situs tsb lancar dan bisa HIT :)
NB: Saya baru ngeh kalo mas human update blog ini. Saya sendiri masih pakai squid 2.7.STABLE6+diff.
tes gravatar baru :)
Testing sukses
Salam buat semua dan selamat siang,
Saya masih awam tinggal di malaysia dan rajin sekali mengikuti diskusi dari rakan-rakan di indonesia dan selamat berkenalan.
Ingin bertanya?
1. Saya punya pc yang saya jadikan server untuk laluan ke internet dengan menggunakan OpenBSD 4.3 (GENERIC) #698 menggunakan SQUID 2.6.STABLE18. Server tersebut di sediakan oleh rakan saya dan sekarang ini saya cuba untuk menguruskannya sendirian kerana rakan saya amat sibuk sekali.
2. Masalahnya untuk mengsetkan squid untuk user tidak mengakses laman prono telah saya dapati dari lamanweb rakan2 yang lain di indonesia telah saya cuba dan nyata tekniknya juga bagus dan berhasil. Cuma apa yang saya inginkan bantuan dari teman2 di human network ini adalah gimana hendak blokir youtube dengan menggunakan tagnama yang ada unsur2 prono atau tidak elok untuk pengguna disamping nonton dan juga boleh download video dari youtube tersebut. Jadinya itu yang saya ingin ketengahkan agar youtube ataupun lain2 video boleh di tonton kecuali yang mempunyai tag prono ataupun lucah tidak boleh di aksess dan di download. Kalau mau blok youtube dari di aksess memang boleh sekali tapi sayangnya cerita2 atau video yang memberikan pelajaran, ataupun cerita kartoon juga disukai oleh anak saya jadinya saya agak sukar untuk memblok youtube yang ada tagnama prono atau lucah.
3. Terima kasih di atas perhatian dan saranan dari rakan2 sekalian.
Moga2 rakan2 yang lain terus maju dan terus berkembang.
#!/usr/bin/perl
#
# file: store_url_rewrite.pl
#
$|=1;
while () {
@X = split;
$url = $X[0];
$url =~s@^http://(.*?)/get_video\?(.*)video_id=(.*?)&.*@squid://videos.youtube.INTERNAL/ID=$3@;
$url =~s@^http://(.*?)/get_video\?(.*)video_id=(.*?)$@squid://videos.youtube.INTERNAL/ID=$3@;
$url =~s@^http://(.*?)/videoplayback\?(.*)id=(.*?)$@squid://videos.google.INTERNAL/ID=$3@;
$url =~s@^http://(.*?)/videoplayback\?(.*)id=(.*?)&.*@squid://videos.google.INTERNAL/ID=$3@;
print “$url\n”; }
Mas Arief,
Pakai squid versi berapa ? dan di squid.confnya ada yang berubah tidak ?
squid-2.7.STABLE6
squid.conf hampir sama, hanya saya tulis prosedural sesuai dengan squid.conf default dan dikasih keterangan. Nanti saya posting lagi saya bagi dalam beberapa bagian.
Dijamin maknyuss ! :D
wahh..mas arief ini sepertinya ada dimana2 ya hehehe :)
Hehehe …
Soalnya squid cache video ini mulai sdh jadi obsesi, saat gagal percobaan saya posting di sini, begitu berhasil saya posting pula di sini :)
Perasaan saya squid.conf sudah dipostkan sebelum file: store_url_rewrite.pl. Bentar saya cari dulu di arsip lokal.
Sebelum diconfigure squidnya dipacth dengan file diff (http://wiki.squid-cache.org/ConfigExamples/DynamicContent/YouTube/Discussion) di bawah:
— src/client_side.c 2008-10-30 07:37:56 +0800
+++ src/client_side.c 2008-11-05 23:44:55 +0800
@@ -2399,6 +2399,18 @@
is_modified = 0;
}
}
+ /* bug fix for 302 moved_temporarily loop bug when using storeurl*/
+ if (mem->reply->sline.status == HTTP_MOVED_TEMPORARILY) {
+ const char *cloc = httpHeaderGetStr(&e->mem_obj->reply->header, HDR_LOCATION);
+ if (!strcmp(http->uri,cloc)) {
+ debug(33, 1) (“Loop Detected: %s Redirect to: %s\n”,
+ http->uri,cloc);
+ http->log_type = LOG_TCP_MISS;
+ clientProcessMiss(http);
+ return;
+ }
+ }
+ /* bug fix end here*/
stale = refreshCheckHTTPStale(e, r);
debug(33, 2) (“clientCacheHit: refreshCheckHTTPStale returned %d\n”, stale);
if (stale == 0) {
Dua kali posting di sini, squid.conf, 2x pula tidak muncul. Ini dibuka via proxy spidi. Saya coba posting lagi squid.conf dalam beberapa bagian:
squid.conf SQUID-2.7.STABLE6 bagian 1/2:
#
# SQUID 2.7.STABLE6
#
# Sebelum diconfigure squidnya dipacth dengan file diff yg dicomot dari
# http://wiki.squid-cache.org/ConfigExamples/DynamicContent/YouTube/Discussion
# Squid Cache: Version 2.7.STABLE6
# configure options: ‘–prefix=/usr/local/squid’ ‘–libdir=/usr/local/lib’ ‘–includedir=/usr/include’ \
# ‘–mandir=/usr/local/man’ ‘–libexecdir=/usr/local/lib/squid’ ‘–with-maxfd=2048′ ‘–with-aufs-threads=24′ \
# ‘–with-pthreads’ ‘–with-aio’ ‘–with-dl’ ‘–enable-gnuregex’ ‘–enable-async-io=24′ ‘–enable-storeio=aufs’ \
# ‘–enable-removal-policies=lru,heap’ ‘–enable-icmp’ ‘–enable-kill-parent-hack’ ‘–disable-delay-pools’ \
# ‘–disable-wccp’ ‘–disable-wccpv2′ ‘–enable-snmp’ ‘–enable-ssl’ ‘–enable-cache-digests’ \
# ‘–enable-default-err-language=English’ ‘–enable-err-languages=English’ ‘–enable-linux-netfilter’ \
# ‘–disable-ident-lookups’ ‘–enable-cachemgr-hostname=localhost’ ‘–disable-auth’
# ACCESS CONTROLS
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl localnet src 192.168.100.0/255.255.255.0
acl localnet src 192.168.0.0/255.255.255.0
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 88 # to my local webserver
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
acl PURGE method PURGE
acl snmppublic snmp_community public
acl QUERY urlpath_regex cgi-bin \?
acl store_rewrite_list url_regex ^http://(.*?)/get_video\?
acl store_rewrite_list url_regex ^http://(.*?)/videoplayback\?
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow localnet
http_access allow PURGE localhost
http_access deny PURGE
http_access deny all
http_reply_access allow manager
http_reply_access allow all
icp_access deny all
# NETWORK OPTIONS
http_port 8080 transparent
# zph
zph_mode tos
zph_local 0×30
zph_parent 0
zph_option 136
# MEMORY CACHE OPTIONS
cache_mem 16 MB
maximum_object_size_in_memory 32 KB
memory_replacement_policy heap GDSF
# DISK CACHE OPTIONS
cache_replacement_policy heap LFUDA
cache_dir aufs /cache 50000 16 256
maximum_object_size 128l MB
cache_swap_low 98
cache_swap_high 99
# LOGFILE OPTIONS
access_log none
logfile_daemon /usr/local/lib/squid/logfile-daemon
cache_log /var/log/squid/cache.log
cache_store_log none
mime_table /usr/local/squid/etc/mime.conf
pid_filename /var/run/squid.pid
netdb_filename /usr/local/squid/var/logs/netdb.state
squid.conf SQUID-2.7.STABLE6 bagian 2/2:
# OPTIONS FOR FTP GATEWAYING
ftp_user user@ableh.org
ftp_passive on
# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
unlinkd_program /usr/local/lib/squid/unlinkd
pinger_program /usr/local/lib/squid/pinger
# OPTIONS FOR URL REWRITING
storeurl_rewrite_program /etc/squid/store_url_rewrite_1.pl
storeurl_rewrite_children 1
storeurl_rewrite_concurrency 10
storeurl_access allow store_rewrite_list
storeurl_access deny all
# OPTIONS FOR TUNING THE CACHE
## For squid-2.6
## We recommend you to use the following two lines.
# acl QUERY urlpath_regex cgi-bin \?
# cache deny QUERY
cache allow store_rewrite_list
cache deny QUERY
refresh_pattern ^http://(.*?)/get_video\? 10080 90% 999999 override-expire ignore-no-cache ignore-private
refresh_pattern ^http://(.*?)/videoplayback\? 10080 90% 999999 override-expire ignore-no-cache ignore-private
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# HTTP OPTIONS
request_header_max_size 20 KB
reply_header_max_size 20 KB
request_body_max_size 0 KB
via on
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
ie_refresh on
vary_ignore_expire on
# TIMEOUT
connect_timeout 3 minute
request_timeout 7 minute
persistent_request_timeout 5 minute
# ADMINISTRATIVE PARAMETERS
cache_mgr admin-proxy@ableh.org
cache_effective_user nobody
cache_effective_group nogroup
visible_hostname proxy.ableh.org
# PERSISTENT CONNECTION HANDLING
client_persistent_connections off
server_persistent_connections off
# SNMP OPTIONS
snmp_access allow snmppublic localhost
snmp_access deny all
# ICP OPTIONS
icp_port 3130
log_icp_queries off
# DNS OPTIONS
check_hostnames on
allow_underscore on
ignore_unknown_nameservers off
ipcache_size 2048
ipcache_low 98
ipcache_high 99
fqdncache_size 8192
# MISCELLANEOUS
memory_pools off
cachemgr_passwd blablabla info config *
client_db off
reload_into_ims on
coredump_dir /cache
pipeline_prefetch on
Beberapa hari yl saya download video youtube, barusan download lagi url yang sama, lah kok ngulang dr awal ya? Kalau download lagi pada hari yg sama tetap cache hit. Keliatannya rule refresh_pattern ada yg perlu dicermati nich. PR buat pembaca … :) Soalnya cobanya nun jauh di sana, dari ujung sumatera remote ke server di ujung timur pulau jawa :D …
klo dari pengalaman saya, mungkin dikarenakan squid -z untuk mengaktifkan cache yang saya edit pada squid.conf, dikarenakan saya mencari angka yang pas buat cache agar larinya kenceng. Hanya caching youtube aja yang hilang ketika ketik squid -z, obyek yang lain tetap ada.
Coba aja mas arif buka movie di youtube, metacafe, atau streaming lainnya, sebelum di squid -z, coba mas buka lagi streaming yang udah di cache. Setelah itu squid nya di stop, kemudian ketik squid -z, kemudian aktifkan lagi squid nya, streaming yang udah di cache udah gak ada. Jadi klo pendapat saya, walaupun rule refresh_pattern di gedein sampe bertahun2, kalau udah di squid -z tetap aja streaming dimulai dari awal lagi.
Kalau gak di squid -z, Streaming yang udah dicache tetap ada terus sampai kapanpun. Ini mah pendapat saya lho ya… mohon dikoreksi kalau salah…. Untuk bro human gimana solusinya nih kalau udah di squid -z nih.. pusing euy T_T
mas adi, mas arief, mas materpop3, serta teman2…
udah baca http://wiki.squid-cache.org/ConfigExamples/DynamicContent/YouTube/Discussion paling bawah ? maksudnya patch apa yah ? selama saya menggunakan squid versi 2.7 Stable3 belum dipatch, caching streaming gak ada masalah
Tolong jelasin yah maksudnya apa patch tersebut… thx
Saya persilakan mas arief yang jawab dah :D
Di url ini: http://wiki.squid-cache.org/ConfigExamples/DynamicContent/YouTube/Discussion
Simpan file diff yang ada di bagian bawah halaman sebagai squid.diff:
— src/client_side.c 2008-10-30 07:37:56 +0800
+++ src/client_side.c 2008-11-05 23:44:55 +0800
@@ -2399,6 +2399,18 @@
is_modified = 0;
}
}
+ /* bug fix for 302 moved_temporarily loop bug when using storeurl*/
+ if (mem->reply->sline.status == HTTP_MOVED_TEMPORARILY) {
+ const char *cloc = httpHeaderGetStr(&e->mem_obj->reply->header, HDR_LOCATION);
+ if (!strcmp(http->uri,cloc)) {
+ debug(33, 1) (“Loop Detected: %s Redirect to: %s\n”,
+ http->uri,cloc);
+ http->log_type = LOG_TCP_MISS;
+ clientProcessMiss(http);
+ return;
+ }
+ }
+ /* bug fix end here*/
stale = refreshCheckHTTPStale(e, r);
debug(33, 2) (“clientCacheHit: refreshCheckHTTPStale returned %d\n”, stale);
if (stale == 0) {
Setelah extract source squid, lakukan patch dengan option dry-run untuk tes file diff:
# tar jxf squid-2.7.STABLE6.tar.bz2
# cd squid-2.7.STABLE6
# patch -p0 –dry-run < ../squid.diff
patching file src/client_side.c
Hunk #1 succeeded at 2407 with fuzz 2 (offset 8 lines).
#
Kalau hasil patch dg option –dry-run seperti di atas berarti patch bisa dipakai, patch kedua kalinya dengan menghilangkan option –dry-run:
# patch -p0 < ../squid.diff
patching file src/client_side.c
Hunk #1 succeeded at 2407 with fuzz 2 (offset 8 lines).
#
Setelah itu baru configure lalu make squid.
ini cara ngepatch…
mohon dijelaskan maksud dan tujuannya patch yang mas arif terangkan diatas? sorry banget, gw nubie abezzzz
wah… ternyata squid versi 2.7 memang harus di patch euy, klo versi lain gw lom coba
Makasih banget mas arief….
n buat mas adi, mas arief, serta teman2, jangan bosan2 posting kesini yah klo ada update squid lagi, biar teman2 yang sering mampir kesini gampang klo ada update squid, daripada cari di google, susah n lama nyarinya :D
Bang itu setingan conf nya di psang di squidnya ipcop bisa ga yaa ?
soalnya aku liat setingannya conf nya tuh standart cache alaman site aja nah pengennya sih ada delay pool ma cache video streaming …
IPcop 1.4.21 squidnya 2.7stable6
Secara teori sudah bisa, tinggal di lihat perl-nya sudah support atau belum.
Dear,
Mo tanya mass.. dolo pakai squid waktu masih pakai fedora Sekarang server di ganti sama ipcop kira2 itu configrasi squidnya beda apa sama ? kalau sama kan tinggal copas conf yang lama ke dlm squidnya ipcop.
Mohon penjelasannnya …
Oh ya.. saya pakai ipcop 1.4.21 squid 2.7 stable6
Setingan squid confnya di pasang di squid ipcop bisa tak tuh ?
Hadooohhhh…
udah di patch masih juga loading lagi euy
gw kira bisa seterusnya…
apa lagi nih bro human T_T
Waduw
bro human…
diyoutube ada tulisan kayak gini :
“An error occurred, please try again later.”
klo gak pake perl youtube atau di disable di squid.conf file perl nya, baru jalan, cuma judul tertentu error muncul tulisan itu, kenapa yah ? ada solusi ?
Belum pernah nemuin kasus seperti ini.
Coba di cek di log squid, access dan error log, mungkin ada clue disitu.
udah solved bro
sepertinya ip youtube ada yang persis dengan ip facebook, gw dapet info dari forummikrotik, di squid.conf diisi skrip server_http11 on n http_port ip_proxy:80 act-as-origin http11, dan satu lagi gw pake ubuntu server, cache_dir nya pake type diskd euy, klo pake type aufs masih tetep aja ada error, aneh bener bro, kok beda diskd dengan aufs dalam segi meng cache streaming, kenapa bisa beda bro ? Padahal diskd bagusnya untuk keluarga BSD kan, bisa jelasin diskd dengan aufs bro
mas human… saya udah coba sesuaikan config dan cacheyoutube2.pl (kebetulan saya make squid-2.7.STABLE3). Kok gak ada yang masuk hit, miss terus walaupun udah saya coba buka situs youtube tersebut dari beberapa pc yang berbeda. apa ada perubahan yang terbaru mas… tolong donk update cara mencachenya. terimakasih sebelum nya.
Nb. Apakah squid-2.7.STABLE3 harus di patch agar bisa mencache (squid-2.7.STABLE, karena squid tersebut udah terinstall langsung dari ubuntunya nih)
terimakasih.
Artikel ini bagus, mungkin yang perlu ditambahkan adalah alat atau tool untuk menganalisa squid cache video youtube. Alat bantu yang saya pakai waktu mengaplikasikan isi artikel ini:
1. youtube-dl, script untuk download video di link youtube. Nanti akan menghasilkan url yg bisa di-query oleh HEAD, wget dan juga squidclient.
2. HEAD ini package lwp-request (perl) untuk mengetahui apakah url yg diperoleh dari langkah 1 di atas ada informasi HIT atau tidak.
3. wget, untuk download video flv dari link yg dihasilkan oleh no 1.
4. squidclient, gunanya untuk menghapus content / video youtube yang telah dicache di lokal.
5. Dari link url yg dihasilkan di atas, bisa difeed-kan ke script cacheyoutube2.pl untuk melihat apakah scriptnya bekerja atau tidak.
Nantilah saya bedah, tapi di blog saya saja ya :).
Sip sip, ditunggu artikel mas …
Soalnya yang bocor sudah ditambal jadi ndak bisa nonton youtube lagi kayak nontok tv. Padahal ada rencana untuk download video youtube master konduktor herbert von karajan, simphony beethoven lengkap.
Kak… saya mendapat error message sama kayak Bang andik:
2010/01/31 03:27:49| squid.conf line 4972: acl videocache_allow_url url_regex -i \.google\.[a-z][a-z]\/videoplayback \.google\.[a-z][a-z]\/videoplay \.google\.[a-z][a-$
2010/01/31 03:27:49| aclParseRegexList: Invalid regular expression '\.google\.[a-z][a-$': Invalid range end
2010/01/31 03:27:49| squid.conf line 4973: acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-$
2010/01/31 03:27:49| aclParseRegexList: Invalid regular expression '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-$': Invalid range end
2010/01/31 03:27:49| squid.conf line 4974: acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-$
2010/01/31 03:27:49| aclParseRegexList: Invalid regular expression '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-$': Invalid range end
2010/01/31 03:27:49| squid.conf line 4975: acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-$
2010/01/31 03:27:49| aclParseRegexList: Invalid regular expression '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-$’: Invalid range end
Sy install squidnya pake apt-get install squid, ga tau gmn caranya ngompile ulang pake –enable-gnuregex. Tolong dijelaskan step by stepnya. makasih…
Bos human… bisa tolong jelaskan, bagaimana kita bisa tau kalo link youtube selalu di berubah? maap nubi kang :D
di bandingkan saja dengan cache log squid yang lama.
Atau paling gampang terasa pada waktu squid sudah tidak caching lagi.
mas gmana ya kalau kita pakai Clark Connect ? atau sama aja settng ya ?
terima kasih atas infonya
Secara umum untuk semua linux sama.
Pastikan saja clark connect memakai squid 2.7X dan sudah tersedia perl.
sip dah
Bos human… emang itu harus di kompile sendiri ya?
Kalo misal saya pake squid yang dari apt-get install masih bisa ato ngga? Terimakasih..
Takutnya kalau pakai apt-get, fungsi regexnya bermasalah, karena tidak jadi default kompile dari squidnya
Terimakasih kang human, Saya memakai squid 2.7 STABLE6 ga perlu di compile ulang dan ternyata berhasil dengan mulus, sebelumnya saya memakai software videocache yg bayar itu (meski sy dapetnya ga bayar) dan mengalami bug sehingga harus me-request 2 kali, baru bisa ter-cache.
Tapi dengan jampi2 diatas, wuuuuzzz… jadi ngacir kang!
Matur sembah nuwun.. ^^
Sip dah kalau sudah bisa jalan, jangan biasakan memakai barang haram ya … he he he
Mohon Bantuan
1281035522.448 258366 192.168.99.1 TCP_MISS/200 21647496 GET http://v19.lscache4.c.youtube.com/videoplayback? – DIRECT/208.117.252.152 video/x-flv
1281035572.956 1133 192.168.99.1 TCP_MISS/200 19055 GET http://www.youtube.com/watch? – DIRECT/64.233.181.93 text/html
1281035573.688 122292 192.168.99.1 TCP_MISS/200 8171268 GET http://v5.cache8.c.youtube.com/videoplayback? – DIRECT/74.125.209.244 video/x-flv
1281035574.013 298 192.168.99.1 TCP_MISS/204 462 GET http://www.youtube.com/get_video? – DIRECT/64.233.181.93 text/html
1281035574.169 932 192.168.99.1 TCP_MISS/204 260 GET http://v22.lscache3.c.youtube.com/generate_204? – DIRECT/208.117.241.33 text/html
1281035589.145 1021 192.168.99.1 TCP_MISS/200 20486 GET http://www.youtube.com/watch? – DIRECT/64.233.181.93 text/html
1281035590.070 315 192.168.99.1 TCP_MISS/204 462 GET http://www.youtube.com/get_video? – DIRECT/64.233.181.93 text/html
1281035590.371 962 192.168.99.1 TCP_MISS/204 260 GET http://v14.lscache1.c.youtube.com/generate_204? – DIRECT/204.246.232.32 text/html
^C
kok ga ada yg HIT yach
bisa dibantu ?