Ada kabar gembira…
Apa tuh..?
Semua orang bisa buat regex storeurl/storeid..MUDAH bangetss !! :-D
CMIIW (Cuma Mau Ingetin Indahnya Woles) hehehe
apa fungsi helper storeurl atau storeid?
fungsi storeurl atau storeid adalah untuk menulis ulang “URL-URL dinamis” ke alamat “URL statis” supaya bisa di-“HIT” oleh SQUID
ini versi saya lho penjelasannya, boleh beda dengan versi kawan2. Lha wong Quick Count Capres aja boleh beda koq
:-D
Apakah URL dinamis tidak bisa di-“HIT” oleh SQUID?
mari kita lihat contoh dibawah ini
saya coba download MP3 surat yasin dari 4shared di alamat
http://www.4shared.com/mp3/WWBGUKwf/036_Surat_Yasin_.htm
ternyata untuk konten mp3 surat yasin yang kita download diarahkan ke mesin-mesin CDN dengan alamat URL yang dinamis
http://dc436.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-220825-db6d3b73&lgfp=2000
http://dc474.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-222355-d60ed0a8&lgfp=2000
http://dc436.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-230027-59959c01&lgfp=2000
URL diatas itu URL
“dinamis” dengan konten yg
“sama”
TAPI SQUID akan menganggap kedua konten diatas adalah berbeda,
sehingga akan selalu “MISS” , padahal sudah didownload berulang-ulang
cek access.log
1405030243.320 110241 192.168.0.251 TCP_MISS/200 12753873 GET
http://dc436.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-220825-db6d3b73&lgfp=2000 – ORIGINAL_DST/199.101.133.64 audio/mpeg
1405031073.012 14070 192.168.0.251 TCP_MISS/200 12753873 GET
http://dc474.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-222355-d60ed0a8&lgfp=2000 – ORIGINAL_DST/78.140.186.28 audio/mpeg
1405033362.093 114522 192.168.0.251 TCP_MISS/200 12753873 GET
http://dc436.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-230027-59959c01&lgfp=2000 – ORIGINAL_DST/199.101.133.64 audio/mpeg
Bagaimana supaya bisa ter-“HIT” ?
Nah, seperti udh disebutkan diatas, disini kita butuh helper storeurl/storeid
helper ini akan mencocokkan pola URL-URL dinamis diatas dengan “regex” dan menulis ulang/mengganti URL diatas ke “URL statis”
Apa itu Regex?
Regular Expression atau regex adalah pattern/pola yg digunakan untuk mencocokkan teks
Alat bantu
Saya sih msh bodoh buat regex beginian jadi mesti pake alat bantu
:-D. Alat bantu saya ketika membuat regex adalah website
rubular.com. ntar kalo sudah terbiasa, ga perlu alat bantu lagi.
Analisa log
OK, lanjut kita buat regex dari URL-URL diatas. Kalo saya biasanya ambil beberapa URL dari
access.log untuk dianalisa pola URL nya
Link 1 : http://www.4shared.com/mp3/WWBGUKwf/036_Surat_Yasin_.htm
http://
dc436.
4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-220825-db6d3b73&lgfp=2000
http://
dc474.
4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-222355-d60ed0a8&lgfp=2000
http://
dc436.
4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-230027-59959c01&lgfp=2000
Pertama adalah, kita cari dulu bagian dari ketiga URL diatas yang
“dinamis” atau yang berubah-ubah. yang saya cetak tebal adalah bagian2
dari URL yang dinamis
1.
dc436,dc474
2.
tsid=20140710-220825-db6d3b73&lgfp=2000 , 20140710-222355-d60ed0a8&lgfp=2000 , 20140710-230027-59959c01&lgfp=2000
lanjut, kita buka website
rubular.com
1. masukin ketiga URL diatas pada kolom
“Your test string”
http://s18.postimg.org/c0w12cfyh/1_rubular.png
2. copy 1 URL dari kolom “Your test string” , lalu paste di kolom
“Your Regular Expression”
http://s11.postimg.org/j4pt7dvf7/2_rubular.png
3. Ok. Sekarang liat ada pesan error
“Forward slashes must be escaped”. tambahkan karakter “
\” sebelum karakter “
/” pada semua bagian URL di kolom
“Your Regular Expression”
http://s24.postimg.org/wlmof3945/3_rubular.png
4. sekarang muncul pesan “No Matches” artinya regex yang kita buat belum cocok. Tenang saudara-saudara. Mari kita utak atik
:-D. hapus “
dc436.” ganti menjadi “
.*”
http://s1.postimg.org/6tkh3w9zj/4_rubular.png
5. masih muncul pesan “No Matches” artinya regex yang kita buat belum cocok. Sabar-sabar
:-D . sekarang hapus “
?tsid=20140710-220825-db6d3b73&lgfp=2000” ganti menjadi “
.*”
http://s23.postimg.org/5j8apcy9n/5_rubular.png
6. Asyeek asyeek..udh muncul di kolom “Match result” berarti regex yang kita buat sudah benar. Mudah pake banget ya ?
:-D
pertanyaan berikutnya adalah apa sih arti dari “.*” ?
saya ambil arti karakter . dan * dari website rubular jg sebagai referensi pada bagian regex quick reference
. =
Any single character ( 1 karakter apa saja) misal d c 1 2 3 & * + – (termasuk spasi)
http://s14.postimg.org/ryrk56yox/6_rubular.png
* =
Zero or more (nol atau lebih). tanda bintang
diletakkan setelah sebuah karakter, yang artinya karakter tersebut dapat
ada nol atau lebih perulangan yang diharapkan dalam pola.
jadi
.* artinya nol atau lebih pengulangan karakter apa aja boleh
Kalau sudah cocok, maka regex yang sudah kita buat tadi yaitu
^http:\/\/.*4shared\.com\/(download\/WWBGUKwf\/036_Surat_Yasin_.mp3).* tinggal kita masukkan ke script helper storeurl atau storeid
Membuat helper storeid (SQUID3X)
pico /etc/squid/pembantuku.pl
copy paste script dibawah ini
#!/usr/bin/perl
$|=1;
while (<>) {
@X = split;
$x = $X[0] . ” “;
if ($X[1]=~m/^http:\/\/.*4shared.com\/(download\/WWBGUKwf\/036_Surat_Yasin_.mp3).*/) {
print $x . “OK store-id=
http://download.di4shared.squidlover.internal/$1\n”;
} else {
print $x . “OK store-id=$X[1]\n”;
}
}
simpan file
jalankan command
chmod +x /etc/squid/pembantuku.pl
backup script jg bisa diliat di >>
http://pastebin.com/4VNnVahb
buka file squid.conf, masukkan config dibawah ini :
#buat ACL dengan url_regex untuk 4shared
acl 4shared url_regex -i ^http:\/\/.*4shared.com\/(download\/WWBGUKwf\/036_Surat_Yasin_.mp3).*
store_id_program /etc/squid/
pembantuku.pl
store_id_children 1 startup=1 idle=1 concurrency=10000
store_id_access allow 4shared
store_id_access deny all
Simpan
squid.conf
jalankan command
squid -k reconfigure lalu
service squid restart
test dah buka
http://www.4shared.com/mp3/WWBGUKwf/036_Surat_Yasin_.htm
Hasilnya
access.log
Anda bisa liat dibawah ini dari domain dc474.4shared.com atau dc436.4shared.com bisa HIT
1405086972.677 2133 192.168.6.5 TCP_HIT/200 12753688 GET
http://dc474.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140711-065534-7242007a&lgfp=2000 – HIE
R_NONE/- audio/mpeg
1405087089.933 1875 192.168.6.5 TCP_HIT/200 12753688 GET
http://dc436.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140711-065739-9d6cb268&lgfp=2000 – HIE
R_NONE/- audio/mpeg
cache.log dengan debug options 84,9
dibawah ini terlihat proses rewriting URL dinamis ke URL statis yang kita buat di helper storeid
2014/07/11 13:56:10.544 kid1|
helper.cc(415) helperSubmit: buf[153]=
http://dc474.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140711-065534-7242007a&lgfp=2000 192.168.6.5/- – GET myip=78.140.186.28 myport=80
2014/07/11 13:56:10.544 kid1|
helper.cc(906) helperHandleRead: helperHandleRead: 99 bytes from store_id #Hlpr0
2014/07/11 13:56:10.544 kid1|
helper.cc(915) helperHandleRead: accumulated[99]=0
OK store-id=
http://download.di4shared.squidlover.internal/download/WWBGUKwf/036_Surat_Yasin_.mp3
2014/07/11 13:58:08.140 kid1|
helper.cc(415) helperSubmit: buf[154]=
http://dc436.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140711-065739-9d6cb268&lgfp=2000 192.168.6.5/- – GET myip=199.101.133.64 myport=80
2014/07/11 13:58:08.140 kid1|
helper.cc(906) helperHandleRead: helperHandleRead: 99 bytes from store_id #Hlpr0
2014/07/11 13:58:08.140 kid1|
helper.cc(915) helperHandleRead: accumulated[99]=0
OK store-id=http://download.di4shared.squidlover.internal/download/WWBGUKwf/036_Surat_Yasin_.mp3
Apakah problem download dari 4shared selesai?
Tentu saja belum, saat ini mungkinAnda senang karena download dari link
http://www.4shared.com/mp3/WWBGUKwf/036_Surat_Yasin_.htmsudah bisa “HIT”, bagaimana jika Anda coba download dari 4shared link yanglain misalnya
http://www.4shared.com/mp3/9yI4I09b/Al-Quran_Surah_Ar_rahman-_Ahma.htm
Opsss….MISSlagi. Anda
tau kenapa MISSlagi? Ya..karena kita hanya buat regex khusus link ini
http://www.4shared.com/mp3/WWBGUKwf/036_Surat_Yasin_.htm saja. OK, berarti kita harus modifikasilagi regex yang sudah kita buat supaya semua download dari 4shared bisater-“HIT”.
Bagaimanacaranya?
Kita harus kumpulkan log (
ambildari file access.log) dari download di 4shared sebanyak-banyaknya sehingganantinya mempermudah kita membuat regex-nya.
Berikut dibawah ini adalah log URL dinamis dari download di 4shared :
http://dc313.4shared.com/download/wZqn2XnC/Padi_-_Kasih_Tak_Sampai.mp3?tsid=20140712-020244-61c996d&lgfp=2000
http://dc100.4shared.com/download/wZqn2XnC/Padi_-_Kasih_Tak_Sampai.mp3?tsid=20140712-021130-345586b3&lgfp=2000
http://dc480.4shared.com/download/9yI4I09b/Al-Quran_Surah_Ar_rahman-_Ahma.mp3?tsid=20140710-232225-d77b2969&lgfp=2000
http://dc436.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-220825-db6d3b73&lgfp=2000
http://dc474.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-222355-d60ed0a8&lgfp=2000
Sekarang coba buka kembali website
rubular.com
1. Copy semua URL diatas ke kolom “Your test string”
http://s27.postimg.org/mr2vp1hc3/7_rubular.png
2. Masukkan regex yang sudah kita buat sebelumnya kekolom “Your regular expression”
http://s11.postimg.org/bzjxili9v/8_rubular.png
Anda bisa lihat bahwa hanya download dari link surat yasin yang baru“match”
3. Coba lihat pada URL dinamis diatas, path dan nama file yangberubah-ubah pada setiap link download di 4shared adalah setelah
download/.coba perhatikan yang saya cetak tebal:
http://dc313.4shared.com/download/wZqn2XnC/Padi_-_Kasih_Tak_Sampai.mp3?tsid=20140712-020244-61c996d&lgfp=2000
http://dc100.4shared.com/download/wZqn2XnC/Padi_-_Kasih_Tak_Sampai.mp3?tsid=20140712-021130-345586b3&lgfp=2000
http://dc480.4shared.com/download/9yI4I09b/Al-Quran_Surah_Ar_rahman-_Ahma.mp3?tsid=20140710-232225-d77b2969&lgfp=2000
http://dc436.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-220825-db6d3b73&lgfp=2000
http://dc474.4shared.com/download/WWBGUKwf/036_Surat_Yasin_.mp3?tsid=20140710-222355-d60ed0a8&lgfp=2000
4. Nah, bagian ini yang akan kita buat regexnya. Masih sama dengansebelumnya kita gunakan saja regex
.* untuk menggantikan path dan namafile yang berubah-ubah tadi. Mudah kan ?
:-D
5. Hapus
WWBGUKwf\/036_Surat_Yasin_.mp3
http://s2.postimg.org/zdu7jqcx5/9_rubular.png
6. Ganti dengan
.*
Taaaraaaaa…sukses
:-D . Semua URL dinamis sudah match
http://s28.postimg.org/bpgmsqne5/10_rubular.png
Tugas berikutnya adalah mengganti config pada
squid.conf dan merubahscript pada file
pembantuku.pl
Filepembantuku.pl UPDATE!
#!/usr/bin/perl
$|=1;
while (<>) {
@X = split;
$x = $X[0] . ” “;
if ($X[1]=~m/^http:\/\/.*4shared.com\/(download\/.*).*/) {
print $x . “OKstore-id=
http://download.di4shared.squidlover.internal/$1\n”;
} else {
print $x . “OKstore-id=$X[1]\n”;
}
}
Filesquid.conf UPDATE!
#buat ACL dengan url_regex untuk4shared (ambil dari regex 4shared diatas)
acl4shared url_regex -i ^http:\/\/.*4shared.com\/(download\/.*).*
Jalankancommand
squid -k reconfigure dan
service squid restart
Sekarang test download dari link apapundi 4shared. Aktifkan
debug options 84,9 dan cek
cache.log , pastikan semua
URL dinamis dari 4shared sudah di tulisulang ke
URL statis http://download.di4shared.squidlover.internal/path/namafile
Sepertidibawah ini :
http://download.di4shared.squidlover.internal/download/wZqn2XnC/Padi_-_Kasih_Tak_Sampai.mp3
http://download.di4shared.squidlover.internal/download/9yI4I09b/Al-Quran_Surah_Ar_rahman-_Ahma.mp3
http://download.di4shared.squidlover.internal/download/WWBGUKwf/036_Surat_Yasin_.mp3
UPDATE
Website lain sejenis
rubular.com adalah
regexr.com. Di
websiteregexr.com,
Anda juga bisa menampilkan langsung replacement/substitution ataualamat
URL statis yang akan kita masukkan di helper storeurl atau storied.
http://s2.postimg.org/dk5cbf7jd/regexr.png
INFO :
Sedekah untuk GAZA –
BCA 603 030 8059an.
Yysn Daarul Qur’an Nusantara.
Info: 021 500311
atau MER-C
http://www.mer-c.org/index.php/id/
Bank Central Asia (BCA)
Rek. No. 686.033.5555 (Kemanusiaan Palestina)
Rek. No. 686.0153678 (Alkes RS Indonesia – Palestina)
Bank Mandiri
Rek. No. 124.000.8111925 (Alkes RS Indonesia – Palestina)
Rek. No. 124.000.3753754 (Kemanusiaan Palestina)
Bank Syariah Mandiri (BSM)
Rek. No. 700.1352.061 (Alkes RS Indonesia – Palestina)
Bank Negara Indonesia Syariah (BNI Syariah)
Rek. No. 081.119.2973 (Alkes RS Indonesia – Palestina)
Bank Muamalat Indonesia (BMI)
Rek. No. 301.00521.15 (Alkes RS Indonesia – Palestina)
Bank Rakyat Indonesia (BRI)
Rek. No. 033.501.0007.60308 (Alkes RS Indonesia – Palestina)