Sunday, 11 March 2012

squid high performance configuration


Ini konfig squid high performance yang baru. Hati2 klo mo pake karena bakal mengisi storage cache anda secara progressive. Hati2 jika anda memiliki ukuran storage yang terbatas (baca – kecil).
# WELCOME TO SQUID 2.x HIGH PERFORMANCES
# ——————
#==============================================
# TAG: http_port
# Daftar port koneksi squid. Yang penting isi http_port karena ini
# merupakan port servis squid yang utama. ‘icp_port’ hanya digunakan
# jika terdapat sibling proxy (proxy tetangga) yang mengijinkan
# pembagian/share cache.
#
#==============================================
http_port 8080 transparent
http_port 3128 transparent
#http_port 80
#icp_port 3130
#==============================================
# TAG: hierarchy_stoplist
# Daftar kata2 yg, jika ditemukan dalam sebuah URL, menyebabkan obyek
# akan ditangani langsung oleh squid. Opsi dapat ditulis beberapa kali
#
#Rekomendasi:
#hierarchy_stoplist cgi-bin ?
#acl QUERY urlpath_regex cgi-bin \?
#no_cache deny QUERY
#==============================================
hierarchy_stoplist cgi-bin ? .js .jsp .g .do .php .asp .cgi
acl QUERY urlpath_regex cgi-bin \? .js .jsp .g .do .php .asp .cgi
no_cache deny QUERY
#==============================================
# OPTIONS WHICH AFFECT THE CACHE SIZE
#==============================================
# Ukuran memory (RAM) yang digunakan untuk men-cache obyek. Jangan
# terlalu besar. Angka standar sekitar 70% RAM, tetapi karena setting
# squid umumnya adalah untuk men-cache obyek2 kecil (obyek<1mb)>
# saja angka maksimum 30% RAM agar proses lain masih kebagian RAM.
# Beberapa orang malah menyarankan agar ukuran cache memory adalah 4 MB
# meskipun ukuran RAM-nya besar (512 MB <= RAM)
cache_mem 8 MB
# Ukuran maksimum suatu obyek yang di-cache ke hd. Ukurannya terserah
# tergantung kebutuhan. Misalnya untuk keperluan update MS Windows,
# biasanya ukurannya menjadi sekitar 128-256 MB. Artinya obyek sampai
# ukuran yang tertera akan disimpan ke dalam cache. Tetapi men-cache
# obyek berukuran besar akan menyebabkan ukuran cache squid harus besar.
# Jadi tetapkan dengan bijak agar squid bekerja optimal.
maximum_object_size 500 MB
# Karena policy squid saya adalah untuk men-cache obyek berukuran kecil
# maka ukuran maksimum obyek dalam memory (RAM) kecil saja (32 KB). Obyek2
# yg berukuran lebih besar akan langsung disimpan ke dalam cache (hd).
#maximum_object_size_in_memory 32 KB
maximum_object_size_in_memory 256 KB
# Ini adalah trik yg menyebabkan squid selalu berusaha menyimpan obyek
# dalam memory dan baru akan men-swap data ke hd jika cache_mem sudah
# penuh.
cache_swap_low 98%
cache_swap_high 99%
# Bagian ini adalah metode swapping data dari memory ke cache hd. LFUDA
# brarti menyebabkan squid akan men-cache obyek2 berukuran besar,
# sebaliknya GDSF men-cache obyek2 kecil secara progresif. Saran saya
# cache hd menggunakan LFUDA dan cache memory menggunakan GDSF karena
# pembacaan/penulisan ke memory (RAM) jelas lebih cepat daripada hd.
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
# Ini adalah pembatasan maksimum memory yg dipakai oleh squid. Saran saya
# sekitar 60-70% dari ukuran RAM.
#high_memory_warning 70 MB
# FIXME!
ipcache_size 16378
# Sama seperti cache_swap_low/high, hanya saja obyeknya adalah IP.
ipcache_low 98
ipcache_high 99
#==============================================
# LOGFILE PATHNAMES AND CACHE DIRECTORIES
#==============================================
# Bagian ini adalah konfigurasi direktori cache (hd). Urutannya adalah:
#
# cache_dir METODE PATH SIZE MIN_STORE_DIR MAX_STORE_DIR
#
# Untuk METODE silakan liat dokumentasi squid. PATH terserah dan
# biasanya orang meletakkannya ke dalam partisi berbeda dengan
# partisi / (ROOT) agar proses pembacaan/penulisan lebih cepat. SIZE
# ukuran maksimum hd yg dipakai untuk cache. Jika menggunakan partisi
# khusus untuk cache directory, jangan gunakan semua blok filesystem.
# Gunakan saja sekitar 70% ukuran partisi sehingga sistem log dan index
# dari partisi tsb tetap dapat bekerja dengan optimal. Dengan kata lain
# JANGAN SAMPAI PARTISI PENUH 100%!
cache_dir diskd /var/spool/squid 20000 16 256
# Ini adalah konfigurasi peletakan log squid. lokasinya terserah.
cache_access_log /var/log/squid/access.log
# Ini jarang dibaca terutama oleh admin males spt saya, sehingga tidak
# dibuat log-nya  . Klo dibutuhkan silakan masukkan PATH seperti di atas
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
# Ini daftar mime squid. Selalu gunakan agar proses filtering obyek
# lebih cepat.
mime_table /etc/squid/mime.conf
# Lokasi PID squid.
pid_filename /var/run/squid.pid
# Beberapa log yg tidak signifikan karena opsi2-nya jarang digunakan.
# Mungkin digunakan tetapi bisa menyebabkan filesystem penuh oleh log  .
log_fqdn off
log_icp_queries off
buffered_logs off
emulate_httpd_log off
#==============================================
# FTP section
#==============================================
# Selalu gunakan opsi ini untuk mengurangi beban trafik. FTP mode pasif
# menyebabkan client tidak berhubungan langsung dengan FTP Server tujuan
# dan menggunakan squid sebagai relay sehingga bandwidth utk koneksi FTP
# bisa dikontrol mungkin dengan kombinasi IP filtering (PF (BSD)/ IPTABLES).
ftp_passive on
ftp_sanitycheck on
#==============================================
# DNS resolution section
#==============================================
# Isikan IP (BUKAN NAMA) untuk mempercepat resolusi query dns dari client.
dns_nameservers 127.0.0.1 202.127.97.18 202.127.97.19
#==============================================
# Filesystem section
#==============================================
#diskd_program /usr/bin/diskd
#==============================================
# AUTH section
#==============================================
# Sistem autentikasi client-server yg di-relay oleh squid. Gunakan jika
# perlu. Tidak saya gunakan agar tidak membebani kerja squid dan bw.
#auth_param basic children 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours
#auth_param basic casesensitive off
#==============================================
# Refresh Rate
#==============================================
# Ini adalah bagian yg sering diutak-atik karena menyangkut lamanya
# sebuah obyek dicatat dalam cache (hd). Cari nilainya secara
# trial n error karena tidak ada angka pasti. Urutannya adalah:
#
# refresh_pattern REGEX MIN_MINUTES VALIDITY(%) MAX_MINUTES
#
# REGEX : silakan liat dokumentasi squid untuk lebih lengkapnya.
# MIN_MINUTES: umur minimum dalam menit sebuah obyek berada dalam cache
# sebelum akan diganti dng obyek yg sama yg lebih baru.
# VALIDITY(%): tingkat validitas obyek dalam cache jika dibandingkan
# dengan obyek asli dari server. Semakin kecil angkanya
# maka squid akan semakin mempercepat proses refreshing obyek.
# Semakin besar angkanya maka semakin lama obyek berada dalam
# cache yg dalam beberapa kasus dapat menyebabkan sebuah
# halaman web tidak berubah jika dilihat dari client. Beban
# trafik harus diperhatikan dalam mempertimbangkan angkanya.
# MAX_MINUTES: umur maksimum obyek dalam cache sebelum obyek dihapus jika
# obyek tidak direfresh.
refresh_pattern -i \.gif 4320 50% 129600 override-lastmod reload-into-ims
refresh_pattern -i \.jpg 4320 50% 129600 override-lastmod reload-into-ims
refresh_pattern -i \.tif 4320 50% 129600 override-lastmod reload-into-ims
refresh_pattern -i \.png 4320 50% 129600 override-lastmod reload-into-ims
refresh_pattern -i \.jpeg 4320 50% 129600 override-lastmod reload-into-ims
refresh_pattern ^ftp: 4320 95% 129600 override-lastmod reload-into-ims
# Untuk beberapa kasus seperti FTP, refresh yg terlalu cepat tidak
# diperlukan karena biasanya daftar file pada sebuah FTP Server tidak
# berubah dalam waktu lama. Ini mempercepat proses listing direktori FTP.
refresh_pattern -i . 0 50% 129600 override-lastmod reload-into-ims
#
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100%
#==============================================
# ACL section
#==============================================
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localnet src 192.168.3.0/24 192.168.1.0/24
acl localhost src 127.0.0.1/255.255.255.255
acl our_networks src 192.168.3.0/24 192.168.1.0/24
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # https, snews
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl purge method PURGE
acl CONNECT method CONNECT
always_direct allow localnet localhost our_networks
always_direct deny all
http_access allow manager all
http_access deny !Safe_ports
http_access allow purge localhost
http_access deny purge
http_access allow localhost
http_access allow localnet
http_access allow our_networks
http_access deny all
http_reply_access allow all
icp_access allow all
reply_body_max_size 0 allow all
http_access allow localnet
http_access allow our_networks
http_access deny all
http_reply_access allow all
icp_access allow all
reply_body_max_size 0 allow all
cache_mgr walecha99@gmail.com
visible_hostname proxy.pls.diknas.go.id
header_access Accept-Encoding deny all
#==============================================
# Transparent proxy setting
#==============================================
#httpd_accel_host virtual
#httpd_accel_port 80
#httpd_accel_with_proxy on
#httpd_accel_uses_host_header on
#httpd_accel_no_pmtu_disc on
#httpd_accel_single_host off
half_closed_clients off
#forwarded_for on
#==============================================
# MISCELLANEOUS
#==============================================
logfile_rotate 3
negative_ttl 2 minutes
#digest_rebuild_period 30 minute
#digest_rewrite_period 30 minute
#digest_swapout_chunk_size 4096 bytes
client_persistent_connections on
server_persistent_connections on
pipeline_prefetch on
vary_ignore_expire on
reload_into_ims on
store_dir_select_algorithm round-robin
nonhierarchical_direct off
prefer_direct off
memory_pools off
shutdown_lifetime 10 seconds
cachemgr_passwd proxy all
ie_refresh on
cache_effective_user proxy
cache_effective_group proxy
Wew… masih ada lagi neh! Lanjuttttttttttttttt………………….
kurang lebih seperti ini kalo dibikin simple tanpa penjelasan:
#============================================================$
# WELCOME TO SQUID 2 HIGH PERFORMANCES
#============================================================$
http_port 8080
http_port 3128
#http_port 80
icp_port 3130
#============================================================$
# TAG: hierarchy_stoplist
# A list of words which, if found in a URL, cause the object to
# be handled directly by this cache. In other words, use this
# to not query neighbor caches for certain objects. You may
# list this option multiple times.
#
#We recommend you to use at least the following line.
#============================================================$
hierarchy_stoplist cgi-bin ? .js .jsp .g .do .php .asp .cgi localhost visicom indosat.net.id
acl QUERY urlpath_regex cgi-bin \? .js .jsp .g .do .php .asp .cgi localhost visicom indosat.net.id
no_cache deny QUERY
#============================================================$
#============================================================$
# OPTIONS WHICH AFFECT THE CACHE SIZE
#============================================================$
cache_mem 4 MB
maximum_object_size 10 MB
maximum_object_size_in_memory 32 KB
cache_swap_low 98%
cache_swap_high 99%
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
high_memory_warning 70 MB
ipcache_size 4096
ipcache_low 98
ipcache_high 99
#============================================================$
# LOGFILE PATHNAMES AND CACHE DIRECTORIES
#============================================================$
cache_dir diskd /var/spool/squid 2000 8 256
cache_access_log /var/log/squid/access.log
cache_log /dev/null
cache_store_log /dev/null
mime_table /usr/share/squid/mime.conf
pid_filename /var/run/squid.pid
log_fqdn off
log_icp_queries off
buffered_logs off
emulate_httpd_log off
#============================================================$
# FTP section
#============================================================$
ftp_passive on
ftp_sanitycheck on
#============================================================$
# DNS resolution section
#============================================================$
dns_nameservers 127.0.0.1 202.155.0.20 202.155.0.10
#============================================================$
# Filesystem section
#============================================================$
diskd_program /usr/lib/squid/diskd
#============================================================$
# AUTH section
#============================================================$
#auth_param basic children 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours
#auth_param basic casesensitive off
#============================================================$
# Refresh Rate
#============================================================$
refresh_pattern \.gif 4320 50% 43200
refresh_pattern \.jpg 4320 50% 43200
refresh_pattern \.tif 4320 50% 43200
refresh_pattern \.png 4320 50% 43200
refresh_pattern \.jpeg 4320 50% 43200
refresh_pattern ^http://www.friendster.com/.* 720 100% 4320
refresh_pattern ^http://mail.yahoo.com/.* 720 100% 4320
refresh_pattern ^http://*.yahoo.*/.* 720 100% 4320
refresh_pattern ^http://*.yimg.*/.* 720 100% 4320
refresh_pattern ^http://*.gmail.*/.* 720 100% 4320
refresh_pattern ^http://*.google.*/.* 720 100% 4320
refresh_pattern ^http://*korea.*/.* 720 100% 4320
refresh_pattern ^http://*.akamai.*/.* 720 100% 4320
refresh_pattern ^http://*.windowsmedia.*/.* 720 100% 4320
refresh_pattern ^http://*.googlesyndication.*/.* 720 100% 4320
refresh_pattern ^http://*.plasa.*/.* 720 100% 4320
refresh_pattern ^http://*.telkom.*/.* 720 100% 4320
refresh_pattern ^ftp: 10080 95% 40320 reload-into-ims override-lastmod
refresh_pattern . 0 20% 4320 reload-into-ims override-lastmod
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100%
#============================================================$
# ACL section
#============================================================$
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localnet src 192.168.2.0/28 192.168.3.0/28 219.83.82.208/28
acl localhost src 127.0.0.1/255.255.255.255
acl our_networks src 192.168.2.0/28 192.168.3.0/28 219.83.82.208/28
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # https, snews
#acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
#acl Safe_ports port 280 # http-mgmt
#acl Safe_ports port 488 # gss-http
#acl Safe_ports port 591 # filemaker
#acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
always_direct allow localnet localhost our_networks
always_direct deny all
http_access allow manager all
http_access deny !Safe_ports
http_access allow purge localhost
http_access deny purge
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow localnet
http_access allow our_networks
http_access deny all
http_reply_access allow all
icp_access allow all
reply_body_max_size 0 allow all
cache_mgr iwellbc@gmail.com
visible_hostname visicom
header_access Accept-Encoding deny all
#============================================================$
# Transparent proxy setting
#============================================================$
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
httpd_accel_no_pmtu_disc on
httpd_accel_single_host off
half_closed_clients off
#forwarded_for on
#============================================================$
# MISCELLANEOUS
#============================================================$
logfile_rotate 3
negative_ttl 2 minutes
#digest_rebuild_period 30 minute
#digest_rewrite_period 30 minute
#digest_swapout_chunk_size 4096 bytes
client_persistent_connections on
server_persistent_connections on
pipeline_prefetch on
vary_ignore_expire on
reload_into_ims on
store_dir_select_algorithm round-robin
nonhierarchical_direct off
prefer_direct off
memory_pools off
shutdown_lifetime 10 seconds
cachemgr_passwd proxy all
ie_refresh on
cache_effective_user proxy
cache_effective_group proxy