squid high performance configuration I

Konfigurasi SQUID

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

Sekali lagi hati2!!!!

#############################################################

taken from Walecha’s LinuX

Th4nX !!

One Response to “squid high performance configuration I”

  1. Ibenk Maulana Says:

    Matap bro…dari mas wallecha ya…


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: