Mungkin ada beberapa rekan yang sudah familiar menggunakan Nginx untuk reverse proxy, tapi kali ini kita akan memanfaatkan nginx ini untuk men cache youtube.
Berikut yang perlu dipersiapkan :
1. Ubuntu Linux Server (distro lain bisa tinggal menyesuaikan)
2. Squid 2.x, 3.x atau lusca
3. Kopi Asli (jangan yg instan, biar maknyus..)
-Langkah awal kita instal paket nginx dengan perintah :
apt-get install nginx
jangan lupa kalo mau menggunakan web service dari nginx, apache/nginx disesuaikan port nya biar gak tabrakan.
-configurasi nginx dengan meng edit file :
/etc/nginx/nginx.conf
contoh :
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on; # procie fakir disable aja
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
server {
listen 127.0.0.1:8081;
location / {
root /youtube/nginx_cache/files;
try_files "/id=$arg_id.itag=$arg_itag" @proxy_youtube;.
}
location @proxy_youtube {
resolver 10.20.40.253;
proxy_pass http://$host$request_uri;
proxy_temp_path "/youtube/nginx_cache/tmp";
proxy_store "/youtube/nginx_cache/files/id=$arg_id.itag=$arg_itag";
proxy_set_header X-YouTube-Cache "email or whatever";
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 "";
}
}
}
dalam tutorial ini ip dari linux server adalah 10.20.40.254 dan ip router 10.20.40.253.
-buat directory untuk penyimpanan cache dan temporary nya di /youtube/nginx_cache :
mkdir /youtube
mkdir /youtube/nginx_cache
set permissionship nya
-selanjutnya edit squid.conf
tambahkah :
acl youtube_videos url_regex -i ^http://[^/]+\.youtube\.com/videoplayback\?
acl range_request req_header Range .
acl begin_param url_regex -i [?&]begin=
acl id_param url_regex -i [?&]id=
acl itag_param url_regex -i [?&]itag=
acl range_param url_regex -i [?&]range=
acl sver3_param url_regex -i [?&]sver=3
cache_peer 127.0.0.1 parent 8081 0 proxy-only no-query connect-timeout=5
cache_peer_access 127.0.0.1 allow youtube_videos id_param itag_param sver3_param !begin_param !range_request !range_param
cache_peer_access 127.0.0.1 deny all
- terakhir restart nginx dan squid :
/etc/init.d/nginx restart
/etc/init.d/squid restart
selamat mencoba!