Squid adalah high-performance
proxy caching server untuk web klien, yang sudah mendukung FTP, ghoper,
dan HTTP data object. Berbeda dengan software caching yang lama, squid
menangani semua permintaan tunggal (single), non-blocking, I/O-driven
proses.
Squid menyimpan meta data dan terutama hot-object yang di simpan di
RAM, menyimpan DNS lookups, mendukung non-blocking DNS lookups, dan
implementasi negative-caching jika permintaan gagal.
Squid mendukung SSL, access kontrol yang
banyak, dan full request logging. Dengan menggunakan lightweight
internet cache protokol, squid cache dapat dibuat dalam suatu hirarki
atau mesh untuk meningkatkan penghematan bandwidth.
Squid terdiri dari program server utama squid, sebuah Domain Name
System lookup (program dnsserver), beberapa program tambahan untuk
permintaan menulis ulang dan melakukan authentication, dan beberapa
tools management client. Ketika squid dijalankan, itu akan menambah
jumlah proses dnsserver, masing-masing bertugas sendiri-sendiri,
blocking Domain Name System (DNS) lookup. Ini akan mengurangi waktu
tunggu DNS lookups.
Saya belum pernah mempraktekkan bagaimana cara menginstal squid. namun saya menemukan sebuah postingan yang menunjukkan cara menginstal squid pada debian 4.0. sebagi berikut.
Install squid dengan perintah :
#apt-get install squid
Kemudian mengedit file konfigurasi squid.conf yg terletak pada
direktori /etc/squid/ dengan text editor yg anda suka (misal vim, pico,
joe, atau mcedit)
# vim /etc/squid/squid.conf
Kemudian edit beberapa parameter yang dirasa penting untuk menjalankan squid, dan berpengaruh besar dalam optimasi squid.
http_port 8080
Option ini akan menentukan di port berapa squid akan berjalan (biasanya di port 3128 dan 8080)
http_port 8080 transparent
Option ini digunakan jika anda ingin menggunakan transparent proxy (SQUID Versi 2.6 keatas)
icp_port 0
Option ini akan menentukan melalui port berapa squid akan mengirimkan dan menerima request ICP dari proxy cache tetangga.
cache_mem 32 MB
Option ini menentukan berapa besar memory yang akan digunakan oleh
squid, defaultnya adalah 8 MB yaitu default yang cocok untuk digunakan
pada
banyak sistem. Namun jika anda memiliki memory yang berlebih, maka
disarankan untuk menaikkannya. Ada yang berpendapat bahwa nilai ini
didapat dari sepertiga memory bebas bagi squid.
cache_dir ufs /cache 1600 4 256
Option pada cache_dir menentukan sistem penyimpanan seperti apa yang
akan digunakan (ufs), nama direktori tempat penyimpanan cache (/cache),
ukuran
disk dalam megabytes yang digunakan oleh direktori tempat penyimpanan
cache (1600 Mbytes), jumlah subdirektori pertama yang akan dibuat di
bawah /cache (4),
dan jumlah subdirektori kedua yang akan diciptakan di bawah subdirektori pertama tadi (256).
Nilai2 pada option cache_dir tadi harus disesuaikan dengan sistem yang
anda miliki, biasanya yang harus disesuaikan hanyalah tempat penyimpanan
cache, ukuran disk,
dan jumlah subdirektori yang akan dibuat. Mengenai angka2 tersebut,
dapat kita peroleh dari rumus yang telah disediakan oleh Mas Devshed
untuk optimasi sbb:
1. Gunakan 80% atau kurang dari setiap kapasitas cache direktori yang
telah kita siapkan. Jika kita mengeset ukuran cache_dir kita melebihi
nilai ini,
maka kita akan dapat melihat penurunan performansi squid.
2. Untuk menentukan jumlah subdirektori pertama yang akan dibuat, dapat menggunakan rumus ini:
x=Ukuran cache dir dalam KB (misal 6GB=~6,000,000KB) y=Average object size (gunakan saja 13KB)
z= Jumlah subdirektori pertama = (((x / y) / 256) / 256) * 2 = # direktori
Sebagai contoh, misal saya menggunakan 6 GB dari untuk /cache (setelah disisihkan 80% nya), maka:
6,000,000 / 13 = 461538.5 / 256 = 1802.9 / 256 = 7 * 2 = 14
maka baris cache_dir akan menjadi seperti ini: cache_dir ufs 6000 14 256
cache_store_log none
Option ini akan melog setiap aktivitas dari storage manager. Log ini
akan memperlihatkan objek-objek mana saja yang dikeluarkan dari cache,
dan objek-objek mana saja yang disimpan dan untuk brp lama objek
tersebut disimpan. Karena biasanya tidak ada gunanya untuk menganalisis
data ini, maka disarankan untuk didisable.
negative_ttl 2 minutes
Default dari option ini adalah 5 menit, tetapi Mas Moh. J. Kabir
menyarankan agar direndahkan menjadi 2 dan jika mungkin menjadi 1 menit.
Kenapa settingannya seperti itu? Mas Moh. J. Kabir menjelaskan bahwa
kita menginginkan proxy yang kita miliki setransparan mungkin. Jika
seorang user mencari halaman web yang dia yakin itu ada, maka kita pasti
tidak ingin adanya waktu lag antara URL menuju dunia dan kemampuan user
untuk mengaksesnya.
cache_effective_user squid
cache_effective_group squid
Jika squid cache dijalankan oleh root, maka user yang akan
menjalankannya akan diubah sesuai UID/GID user yang disebutkan pada
option di atas. Pada contoh option di atas jika squid dijalankan oleh
root, maka squid cache akan dijalankan dengan UID/GID squid.
maximum_object_size 1024 KB
Dengan option ini, ukuran file maksimum yang disimpan oleh squid cache
bisa dibatasi. Dengan kata lain objek yang lebih besar dari bilangan ini
tidak akan disaved ke dalam disk yang sudah disisihkan buat cache
(misal /cache).
minimum_object_size 4 KB
Dengan option ini maka objek yang lebih kecil dari bilangan yang
disebutkan tidak akan disaved ke dalam disk yang sudah disisihkan buat
cache. Ada tambahan dari artikel yang ditulis Mas Emon bahwa ukuran file
minimum yang dicache bertujuan mengefektifkan filesystem di mana
biasanya ext2 diformat dengan 4 KB inode.
ftp_user regeditq@gmail.com
Dengan option ini, maka ketika klien mengakses situs ftp anonymous,
email address di atas akan dikirim sebagai password bagi ftp server
anonymous.
acl lokal-ip src 172.16.100.0/255.255.255.0
http_access allow lokal-ip
http_access deny all
Option-option tersebut menentukan subnet mana yang boleh mengakses proxy
squid. Jika ada beberapa subnet, kita bisa menambahkan definisi acl
nya.
cache_mgr regeditq@gmail.com
Email-address dari local cache manager yang akan menerima email jika
cache mati.Email ini pulalah yang akan muncul pada browser klien jika
terjadi suatu kesalahan ketika mengakses suatu web via proxy squid.
Informasi ini dikirim sebagai footer pada saat pesan error tampil di layar browser klien.
half_closed_clients off
Beberapa klien dapat membatalkan koneksi TCP nya, dengan membiarkan
bagian penerimaaannya terbuka. Kadang-kadang squid tidak dapat
membedakan antara koneksi TCP yang half-closed dan full-closed.
Defaultnya, koneksi half-closed tetap terbuka sampai pembacaan dan
penulisan pada soket memunculkan pesan error. Ubahlah nilai ini ke off,
maka squid dengan serta merta akan menutup koneksi client jika tidak ada
data yang dibaca lagi.
Saran Mas Devshed yang lain untuk meningkatkan performance:
cache_swap_high 100%
cache_swap_low 80%
Setelah semua selesai dilakukan, cobalah start squid anda dan rasakanlah perbedaannya
# /etc/init.d/squid start
Jika ada error, jangan panik, carilah letak kesalahan dengan selalu memonitor log
# tail -f /var/log/messages