Caching Youtube

20 10 2010

Coba-coba caching youtube akhirnya bisa juga….. 😀

Source
http://human.network.web.id/2008/06/30/caching-youtube
http://wiki.squid-cache.org/Features/StoreUrlRewrite
http://wiki.squid-cache.org/Features/StoreUrlRewrite/RewriteScript

Buat script storeurl_rewrite perl

#!/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";
}
}

Tambahan di squid.conf

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

storeurl_access allow store_rewrite_list
storeurl_access allow store_rewrite_list_web_CDN
storeurl_access allow store_rewrite_list_web store_rewrite_list_path
storeurl_access deny all
storeurl_rewrite_program /etc/squid/store_url_rewrite
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
refresh_pattern -i \.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv)(\?|$) 161280 3000% 525948 override-expire reload-into-ims




Load Balancing Linux

21 02 2010

refrensi dari Pak Onno W Purbo

topologi jaringan

Sambungan ADSL melalui eth1 IP address 192.168.1.2/24 dengan gateway router ADSL pada IP 192.168.1.1/24

Sambungan WIFI melalui eth2 IP address 192.168.5.1/24 melalui WiFi / Wireless dengan gateway 192.168.5.1/24

Sambungan LAN melalui eth0 IP address 192.168.0.254/24

ISP 1
192.168.1.1/24 (ISP1)
192.168.1.2/24 (eth1)

SIP2
192.168.5.1/24 (ISP2)

192.168.5.2/24 (eth2)

ROUTER
192.168.0.254/24 (eth0)

#set IP NIC di /etc/network/interface

auto eth0
iface eth0 inet static
address 172.31.53.254
netmask 255.255.255.192

auto eth1
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0

auto eth2
iface eth2 inet static
address 192.168.5.2
netmask 255.255.255.0

#tambah routing di /etc/iproute2/rt_tables

120 hsp
121 telkom
123 rtrw

#set routing dan load balancing

/sbin/ip link set lo up
/sbin/ip link set eth0 up
/sbin/ip link set eth1 up
/sbin/ip link set eth2 up

/sbin/ip route flush table hsp
/sbin/ip route flush table telkom
/sbin/ip route flush table rtrw

/sbin/ip rule add prio 10 table main
/sbin/ip rule add prio 20 table hsp
/sbin/ip rule add prio 30 table telkom
/sbin/ip rule add prio 40 table rtrw

/sbin/ip rule add prio 20 from 192.168.5.0/24 table hsp
/sbin/ip route add default via 192.168.5.1 dev eth2 src 192.168.5.2 proto static table hsp
/sbin/ip route append prohibit default table hsp metric 1 proto static

/sbin/ip rule add prio 30 from 192.168.1.0/24 table telkom
/sbin/ip route add default via 192.168.1.1 dev eth1 src 192.168.1.2 proto static table telkom
/sbin/ip route append prohibit default table telkom metric 5 proto static

# Set up load balancing gateways
/sbin/ip rule add prio 40 table rtrw
/sbin/ip route add default proto static table rtrw \
nexthop via 192.168.5.1 dev eth2 weight 1 \
nexthop via 192.168.1.1 dev eth1 weight 1

#set NAT / proxy untu melakukan NAT ke dua (2) interface yang berbeda

/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p tcp -s 0/0 –-dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -p tcp -s 0/0 –-dport 25 -j ACCEPT
/sbin/iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth1 -j REJECT –-reject-with tcp-reset
/sbin/iptables -A INPUT -p tcp -i eth2 -j REJECT –-reject-with tcp-reset
/sbin/iptables -A INPUT -p udp -i eth1 -j REJECT -–reject-with icmp-port-unreachable
/sbin/iptables -A INPUT -p udp -i eth2 -j REJECT –-reject-with icmp-port-unreachable

/sbin/iptables -t nat -A POSTROUTING -o eth2 -j SNAT –-to 192.168.5.2
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j SNAT -–to 192.168.1.2

#set transparen proxy

/sbin/iptables -t nat -A PREROUTING -i eth0 -p TCP –dport 80 -j REDIRECT –to-port 3128





Delay Pool Parameter

6 06 2008

Ada beberapa tag konfigurasi untuk delay pools di squid.conf

1. delay_pools <jumlah>
menyatakan berapa banyak bagian/pool yang akan dibuat
misal

delay_pool 2

2. delay_class <bagian tipe/class>
menentukan klas/tipe pembagian bandwith dari setiap pool. 1 pool hanya boleh memiliki 1 clas, tidak lebih atau kurang.
bagian merupakan nomer urut dari jumlah pool didelay pool, jadi ada 1 s/d n bagian dimana n merupakan angka jumlah pada delay_pools

tipe merupakan tipe class delay yang dipakai.
Secara umum tipe menyatakan bagaimana cara membagi bandwidth, ada 3 tipe: Read the rest of this entry »





Transperent Squid & Internet Sharing

6 04 2008

Transparent proxy web cache adalah sebuah proxy web cache yang difung sikan sebagai server. Server inilah yang akan menangani permintaan halaman web oleh user, atau dengan kata lain transparent akan membajak traffic HTTP yang umumnya digunakan port 80 untuk memakai port yang dipakai oleh squid secara paksa.

Transparent proxy digunakan untuk memudahkan setting browser client agar memakai proxy secara otomatis.

Read the rest of this entry »





Billing Linux Cclfox

20 12 2007

Buat temen-temen yang ingin menggunakan Billing warnet Cafe Con Leche, dengan paket debian untuk Ubuntu/Debian

Paket debian program CCL versi bahasa indonesia dapat di download di http://www.esnips.com/web/CafeConLenche/

untuk source nya download di http://sourceforge.net/project/showfiles.php?group_id=112779

1. libccls => Pustaka Billing Warnet Server

2. cclfox => Billing Warnet Server

3. libcclc => Pustaka Billing Warnet Client

4. cclcfox => Billing Warnet Client

Dependencies yang diperlukan

  • sqlite3
  • glib2.0
  • libfox-1.6-0
  • openssl

Read the rest of this entry »





Aqidah dan Sunnah

25 11 2007

Nampaknya umat islam sekarang terbuai dengan impian masa lalu yang gemilang, dengan segala pujian kebanggaan, atas keberhasilan seribu tahun lalu. Hingga umat menjadi lalai, lupa, dengan kebanggaan sejarah masa lalu itu. Padahal pada kenyataannya berbalik. Kini keadaaan umat islam sangat memprihatinkan. Aqidah serta keyakinan akan kebenaaran firman Allah semakin luntur. Iman sudah rapuh digoncang oleh modernisasi.

Banyak umat isalm yang lupa dari al-Quran, padahal al-Quran adalah petunjuk dari Allah. Tak pula mengindahkan sunnah nabi. Mereka lebih mengandalkan akal mereka, bagi mereka akal adalah segala-galanya

Read the rest of this entry »





IDUL FITRI = MUDIK SUCI

10 10 2007

Satu, dua, tiga, dan…….. yap!! Lebaran sudah diambang pintu. Mau ngapain yaaah…, yang jelas sudah terencana. Bahkan mungkin sebulan sebelum bulan puasa sudah dibuat agendanya (jauh amat sih…!!). kalau tidak salah, lebaran sangat identik dengan yang baru-baru. Biasanya orang-orang pada beli baju baru, celana baru, sepatu baru, tas baru, kerudung baru, pokoknya semuanya serba baru, (asalkan jangan pasangan aja yang baru). Bahkan sebagian orang sudah punya rencana baru untuk bikin dosa baru, naudzubillahimin dzalik!!!!!!

Read the rest of this entry »