Website accelerator dengan Freebsd 9 dan squid 3.1 (reverse proxy)

Teknik mempercepat website ada banyak; baik di level DNS, peletakan file static di domain/server yang berbeda dll. kali ini saya akan mempergunakan OS Freebsd 9 dan squid bawaan dari Port System.

Oke, pertama-tama konsep dari Web-accelerator dipahami dulu. Misalkan ada user A dari IP External me-request file index.htm pada server Z, dimana untuk menghasilkan file index.htm *** tsb melibatkan banyak komponen; antara lain service apache (webserver), mysql (database server).

Begitu file index.htm terunduh oleh browser user A, di dalam file index.htm tsb membutuhkan file statik image-jpg, css  & js pada server Z yang sama, hanya beda direktori, karena browser secara default akan merambat semua file yang diperlukan di proses lagi request ke Server Z untuk mengunduh file css dsb nya. sampai selesai. Dan ini membuat apache (webserver) pada server Z sibuk. Bayangkan kalau ada 50-100 pengunjung dalam 1 menit, dan index.htm membutuhkan 70 file jpg/css/js didalamnya!

reverse proxy 01
Yang kebanyakan terjadi pada website sibuk (konfigurasi single server)

Lihat diagaram diatas, Web server dan DB server akan sibuk hanya untuk menghasilkan output index.htm yang sama untuk setiap request. Apalagi jika Webserver tidak di konfigurasi untuk menghasilkan gzip output. Deflate/Compressed/Gzipped output memang mengurangi trafik network sangat signfikan untuk file-file css/js. Tetapi, prosesor server akan banyak terutilitas untuk meng-gzip-kan file-file static tsb.

Nah untuk website yang sibuk, diperlukan sebuah mesin lagi untuk menampung object-object static; biasanya dinamakan Web Accelerator. Engine-X (nginx) bisa dimanfaatkan juga untuk kepentingan ini, tetapi setahu saya lebih baik menggunakan SQUID pada situasi diatas. Sehingga diagram networknya berubah menjadi:

reverse proxy 02
Mesin Freebsd akan dijadikan Reverse Proxy; memperingan kerja webserver.

Tidak jauh berbeda untuk membuat proxy untuk kepentingan internet sharing; web-accelerator hanya ‘tweak’ di sisi squid.conf. Untuk itu, pelajari dulu artikel sebelumnya yang sudah saya pernah buat tentang pembuatan proxy server dengan freebsd.

Modifikasi saja squid.conf dari artikel sebelumnya, rubah squid.conf:

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

acl localnet src 10.0.0.0/8 # RFC1918
read more