Pada artikel ini kita tidak akan membahas semua opsi yang ada pada
squid.conf, kita hanya akan membahas opsi-opsi yang dirasa penting untuk menjalankan squid dan berpengaruh besar dalam optimasi squid.
http_port 3128
Opsi ini akan menentukan di port berapa squid akan berjalan (biasanya di port 3128 dan 8080 atau port lain)
icp_port 0
Opsi ini akan menentukan melalui port berapa squid akan mengirimkan dan menerima request ICP dari
proxy cache tetangga.
cache_mem 32 MB
Opsi 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 seperempat memory bebas bagi
squid.
cache_dir ufs /cache 1600 4 256
Opsi 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
untuk optimasi sbb:
- 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.
- 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
Opsi ini akan meng-log 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 menyarankan agar
direndahkan menjadi 2 dan jika mungkin menjadi 1 menit. Kenapa
settingannya seperti itu? 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 opsi ini, ukuran file maksimum yang disimpan oleh squid cache
bisa dibatasi. Dengan kata lain objek yang lebih besar dari bilangan ini
tidak akan disimpan ke dalam disk yang sudah disisihkan buat cache
(misal /cache).
minimum_object_size 4 KB
Dengan opsi ini maka objek yang lebih kecil dari bilangan yang
disebutkan tidak akan disimpan ke dalam disk yang sudah disisihkan buat
cache.
ftp_usera admin@blah.com
Dengan opsi ini, maka ketika klien mengakses situs ftp anonymous, email
address di atas akan dikirim sebagai password bagi ftp server anonymous.
reference_age 1 month
Dengan opsi ini, maka file cache yang tidak pernah diakses lagi selama
nilai parameter di atas, akan dihapus secara otomatis oleh squid.
acl Ricky@Net src 192.168.1.0/255.255.255.0
http_access allow Ricky@Net
http_access deny all
Opsi-opsi tersebut menentukan subnet mana yang boleh mengakses proxy
squid. Jika ada beberapa subnet, kita bisa menambahkan definisi acl nya.
cache_mgr admin@blah.com
Alamat Email 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.
visible_hostname admin.blah.com
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.
delay_pool
Untuk membatasi bandwith (Management bandwith)
ntuk memanage bandwithnya, adapun konfigurasinya itu ialah :
delay_pool : untuk nentuin berapa banyak pool yang bakal kita bikin.
delay_access : buat nentuin acl/user mana yang ngegunain pool tsb.
delay_class : untuk nentin pool yang di gunakan itu menggunakan kelas berapa.
delay_parameters : nah ini yang kita gunain untuk membuat sebuah aturan
darii poolnya, dan ini tergantung dari kelas pool yang kita gunain.
langsung kecontohnya deh (disini anggapan kita udah ngerti tentang acl, jadi kita tidak membahas itu lagi) :
acl limitted_user src 192.100.0.0/24
acl manager src 192.100.1.23 192.100.1.25 192.100.32
acl admin src 192.100.100.96 192.100.1.3
delay_pools 3
delay_class 1 3
delay_parameters 1 32000/32000 16000/16000 6000/64000
delay_access 1 allow limitted_user
delay_access 1 deny all
delay_class 2 2
delay_parameters 2 32000/32000 6000/64000
delay_access 2 allow manager
delay_access 2 deny all
delay_class 3 1
delay_parameters 3 -1/-1
delay_access 3 allow admin
delay_access 3 deny all
|
Keterangan:
delay_pools 3
itu kita bikin 3 pools, yang masing2 pool punya aturan dan hak yang mau gunain aturan itu. klo maksud dari
delay_class 1 3
itu kita nentuin untuk pool 1 menggunakan kelas 3, 1 itu menunjukan
nomer poolnya, 3 itu nunjukin kelasnya. sekarang lanjut ke
delay_parameters.
delay_parameters yang kita kasih aturannya tergantung dari kelas pool yang kita tentuin sebelumnya.
Untuk kelas 1
delay_parameters <#pool individual>
contoh :
delay_parameters 1 1000/64000
delay_parameters 1 -1/-1
Berarti semua network akan mendapat bandwidth yang sama di pool no 1.
Sebesar 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb. dan di
aturan kedua berarti semua network mendapat bandwith unlimitted.
Untuk kelas 2
delay_parameters <#pool agregate individual>
contoh :
delay_parameters 2 32000/32000 6000/64000
Berarti squid akan memakai bandwidth maksimum (32000*8) 256kbits dari
semua bandwidth. Bila terdapat lebih dari 1 network class C, maka total
yang dihabiskan tetap 256 kbit/sec dan tiap user akan mendapat
bandwidth maksimum 6 kbytes/sec (48 kbits/sec), dengan burstable file 64
kb.
untuk kelas 3
delay_parameters <#pool agregate network individual>
Contoh :
delay_parameters 1 32000/32000 8000/8000 1000/64000
Berarti squid akan memakai bandwidth maksimum (32000*8) 256kbits dari
semua bandwidth. Bila terdapat lebih dari 1 network class C, maka
setiap network akan dipaksa maksimum sebesar (16000*8) 128 kbits/sec dan
tiap user pada satu network akan mendapat bandwidth maksimum 6
kbytes/sec (48 kbits/sec), dengan burstable file 64 kb.
OK… sekarang bagian terakhir… klo delay_access itu pasti udah jelas
kan?? ya dia cuma buat nentuin pool itu di gunain ama acl yang mana… di
allow or di deny.
contoh:
delay_access 3 allow admin
delay_access 3 deny all
maksudnya hanya admin yang di perbolehkan menggunakan aturan di pool
3, sedangkan yang lainnya tidak bisa menggunakan aturan di pool 3.
Saran yang lain untuk meningkatkan performance:
cache_swap_high 100%
cache_swap_low 80%