Membuat Load Balancing Proxy Dengan Squid
Use Case
Misalnya kalian melakukan data scraping ke website suatu marketplace untuk mengambil detail produk-produknya, sayangnya data scraping biasanya adalah hal yang dilarang sehingga biasanya marketplace tersebut akan memblokir IP yang dicurigai melakukan scraping karena secara terus menerus me-request ke website tersebut
Solusinya adalah menggunakan proxy agar IP kita tidak terblokir! 1 proxy juga kadang tidak cukup maka kita butuh merubah IP setiap melakukan request ke webbsite marketplace tersebut.
Load Balancing Proxy Dengan Squid
Anggap saja kita punya list proxy
x.x.x.2:3128
x.x.x.3:3128
x.x.x.4:3128
x.x.x.5:3128
Kita ingin setiap kali kita melakukan scraping ke website marketplace tersebut, IP kita akan selalu berubah-ubah sesuai dengan proxy list kita. Caranya dengan me-balancing-kan proxy list tersebut dengan VPS (x.x.x.1) yang akan kita install squid
Langsung saja ke prakteknya
1. Install Squid
Agar lebih mudah pakai script yang saya sediakan di https://github.com/kripul/squid
wget https://raw.githubusercontent.com/kripul/squid/master/squid3-install.sh
chmod 755 squid3-install.sh
sudo ./squid3-install.sh
NOTE : script di atas menginstall Squid dengan port 3129 bukan 3128!
2. Tambahkan config cache_peer
Edit konfigurasi squid
sudo nano /etc/squid/squid.conf
Lalu kita tambahkan proxy list punya kita di baris paling bawah
# List proxies
cache_peer x.x.x.2 parent 3128 0 round-robin no-query login=admin:admin
cache_peer x.x.x.3 parent 3128 0 round-robin no-query login=admin:admin
cache_peer x.x.x.4 parent 3128 0 round-robin no-query login=admin:admin
cache_peer x.x.x.5 parent 3128 0 round-robin no-query login=admin:admin
Save dan restart Squid
sudo service squid restart
Sekarang kita coba
http_proxy="http://x.x.x.1:3129" wget -O - ifconfig.co -q
Kalau kita menjalankan perintah di atas di terminal, maka hasilnya IP kita akan selalu berubah-ubah setiap melakukan request sesuai dengan list proxy kita!
Selamat mencoba!