Squid bukan hanya proxy dan layanan cache, ia dapat melakukan lebih banyak lagi: mengelola acl (daftar akses), memfilter konten, bahkan dapat melakukan filter ssl bahkan dalam mode transparan (metode proxy - tanpa harus mengkonfigurasi dalam pengaturan proxy dari browser mereka, seperti manusia di tengah, tidak ada yang tahu itu ada). Jadi saya biasanya melihat bagaimana potensi penuh dari aplikasi ini terbuang percuma dengan tidak mengetahui cara mengkonfigurasi masing-masing bagiannya.
Sekarang hal menarik yang dilakukan squid adalah cache (menurut saya). Anda akan memberitahu saya, mengapa cache? Alasannya sederhana, lebih baik mengatur penggunaan kecepatan dan bandwidth Anda adalah hal yang utama. Pikirkan baik-baik, 1000 orang di perusahaan Anda berkonsultasi setiap 5 menit, halaman umum, Google, Hotmail, Gmail, dll ... sehingga Anda akan mengunduh gambar, spanduk, iklan, konten html berulang kali, semua ini adalah hal-hal statis, tidak Mereka begitu sering berubah, lebih baik menyimpannya di jaringan lokal Anda dan mengirimkan salinan yang Anda anggap terbaru dalam konfigurasi yang Anda pertimbangkan.
Bagaimana cara melakukannya Sederhana dengan kalimat berikut:
refresh_pattern [-i] regex min percent max [options]
Seperti yang selalu saya katakan, jangan percaya semuanya, jadi saya mendorong Anda untuk membaca dari sumber resmi. Saya sarankan untuk membaca panduan untuk keputusan ini DI SINI.
Pernyataan refresh_pattern akan selalu menjadi tag kita untuk menambahkan parameter baru ke dalam cache.
Penting, daftar cache Anda harus berurutan, karena setelah cocok dengan yang pertama cocok dengan objek, itu tidak akan melanjutkan membaca aturan Anda yang lain.
Ekspresi reguler peka terhadap huruf besar dan kecil, jadi flv tidak sama dengan FLV, tetapi Anda dapat menghindari hal ini jika Anda mau dengan menggunakan opsi -i . Maka akan terlihat seperti ini: refresh_pattern -i
'Min': Ini adalah waktu (dalam menit) suatu objek akan dianggap "baru" jika tidak memiliki tag "kedaluwarsa" secara eksplisit. Secara default, Squid merekomendasikan 0, karena beberapa aplikasi dinamis mungkin berperilaku aneh. Nilai ini sebenarnya harus berupa angka yang Anda anggap berguna dan efektif untuk elemen yang ingin Anda simpan dalam cache. Misalnya, 1440 menit (satu hari) tampaknya cukup baik bagi saya untuk JPG; bukan berarti gambar dalam sebuah postingan di situs web berubah setiap 5 menit.
'Persen' adalah persentase usia suatu objek (sejak modifikasi terakhir) yang akan dianggap "baru" atau "segar". Misalnya, jika Anda terus-menerus memuat ulang atau menyegarkan halaman web untuk melihat modifikasi terbaru, Squid mungkin menganggap bahwa jika objek tersebut telah mencapai, katakanlah, 50% dari waktu antara nilai minimum dan maksimum , maka Squid akan mengunduh objek tersebut dari internet lagi dan memberi Anda salinan yang baru.
'Max' adalah batas di atas atau sama dengan 'Min' untuk berapa lama suatu objek dianggap "baru atau segar". Misalkan sebuah gambar di halaman hanya dilihat sekali oleh pengguna; objek tersebut telah mencapai waktu minimumnya , tetapi belum mencapai waktu maksimumnya . Jadi, ketika dilihat lagi, salinan yang tersimpan dalam cache akan dikirimkan.
Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale
Opsi ini sebagian besar dibuat untuk mengabaikan perilaku yang telah ditetapkan sebelumnya dalam bahasa dan protokol, untuk menjamin penggunaan cache yang efektif.
override-expire
Ini memberlakukan waktu minimum suatu objek, bahkan jika server mengirimkan waktu kedaluwarsa yang lebih pendek (misalnya hal-hal seperti header atau Cache-Control: max-age). Jika kita melakukan ini, sebuah "peringatan" akan muncul mengatakan hal-hal seperti ini "MELANGGAR standar HTTP" tetapi itu hanya peringatan yang dapat kita abaikan. Nah jika waktu pengiriman server lebih lama maka squid akan mengambil waktu (kedaluwarsa) server
override-lastmod
Memperkuat waktu minimum item, meskipun item tersebut baru saja diubah.
reload-into-ims
Penjelasan singkatnya adalah mencegah ketika kita menekan tombol refresh atau membuat permintaan no-cache, squid akan mengirimkan cache jika belum "dimodifikasi sejak" dan / atau jika tidak ada "header" pada halaman.
ignore-reload
Abaikan tindakan pengguna untuk menekan tombol muat ulang atau segarkan halaman
ignore-no-store
Abaikan aturan apa pun di header untuk tidak menyimpan cache, misalnya video
ignore-private
Abaikan aturan apa pun di header konten pribadi yang tidak boleh di-cache, contoh: konten facebook.
refresh-ims
Squid menghubungi server, untuk memastikan apakah objek tersebut terbaru. Jika sudah maka itu akan mengirimkan cache
store-stale
Squid akan menyimpan semua respon tersebut, bahkan jika mereka tidak memiliki tanggal kadaluwarsa, ini sangat tidak praktis karena biasanya tidak dapat digunakan kembali. Jika Anda memutuskan untuk mengaktifkannya, Anda harus mendeklarasikan max-stale = NN
max-stale=NN
Jika Anda mengaktifkan hal di atas, Anda harus mendeklarasikan masa pakai maksimum untuk respons atau faktor itu. Squid tidak mengirimkan objek dengan gaya ini tetapi dapat memvalidasinya dengan sumbernya
Berikut adalah tabel cara kerja status "FRESH" sesuai dengan nilai yang telah kita diskusikan:
- SEGAR jika kedaluwarsa> sekarang, jika tidak STALE
- STALE jika usia> max
- FRESH jika faktor lm <persen, kalau tidak STALE
- FRESH jika umur <min. STALE
Berikut adalah contoh konfigurasi untuk perusahaan tertentu dengan banyak ruang disk, peralatan bagus, dan bandwidth bagus
refresh_pattern -i \.(3gp|7z|ace|asx|bin|deb|divx|dvr-ms|ram|rpm|exe|inc|cab|qt)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)|arj|lha|lzh|zip|tar)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|dat|ad|txt|dll)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(avi|ac4|mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rm|r(a|p)m|snd|vob)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(pp(t?x)|s|t)|pdf|rtf|wax|wm(a|v)|wmx|wpl|cb(r|z|t)|xl(s?x)|do(c?x)|flv|x-flv)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims
cache_mem 8092 MB
Sekarang caching tidak hanya di hard drive; kita juga dapat melakukan caching di RAM. Nilai ini berlaku per proses Squid, jadi Anda harus memperhitungkannya saat menggunakan redirector seperti SquidGuard.
maximum_object_size_in_memory 1024 KB
Ukuran maksimum objek di memori yang disimpan squid di RAM. Anda juga bisa mendeklarasikan minimum.
memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF
Seperti yang Anda lihat, salah satunya adalah kebijakan untuk penggantian cache di memori RAM dan yang lainnya di hard disk. Ada 2 kebijakan GDSF dan LFUDA. Yang pertama berusaha meningkatkan persentase cache yang ditemukan, memiliki banyak objek kecil di tangan, yang kedua berusaha sebaliknya, menyimpan objek dalam cache terlepas dari ukurannya.
Pertanyaan yang saya bayangkan Anda tanyakan pada saya saat ini adalah: Apa gunanya? Nah jika Anda menganggap bahwa di lingkungan Anda mereka melakukan banyak kueri dan sedikit unduhan menggunakan GDSF jika sebaliknya mereka melakukan banyak unduhan dan sedikit kueri LFUDA. Bahwa jika saya merekomendasikan LFUDA ketika Anda akan melakukan, saya tidak tahu, cache di 1TB disk, itu lebih efisien.
maximum_object_size 4 MB
Ukuran maksimum suatu objek harus disimpan
cache_dir aufs /media/proxy249/cache 100 16 256
Dimana cache akan disimpan, perhatian disini, yang penting adalah jika menggunakan ufs, aufs atau diskd, ketiganya bekerja kurang lebih sama, bedanya aufs dan diskd bekerja dengan proses terpisah untuk melakukan operasi I / O pada harddisk dan menghindari proses squid hang selama operasi ini, selain itu diskd Anda dapat menentukan jumlah utas yang akan Anda miliki untuk tugas ini. Saya merekomendasikan aufs jika Anda memiliki tim yang bagus.
Ukuran 100 (megabyte), Anda dapat menempatkan 100000 hampir 100GB tergantung ketersediaan Anda. 16 adalah jumlah folder, dan 256 adalah jumlah sub-folder. Anda dapat bermain dengan kedua nilai tergantung pada seberapa cepat disk Anda dan seberapa banyak sumber daya yang Anda miliki.
cache_swap_low 90
cache_swap_high 95
Opsi-opsi ini adalah nilai pengganti dari objek, ini adalah nilai minimum dan maksimum sebagai tanda air menurut squid, di mana angka-angka ini dalam persentase (%), dan dalam cache yang sangat kecil, 5% seperti ini sekarang, katakanlah 300 objek per detik , tetapi dalam cache yang sangat besar kita akan membicarakan tentang ribuan MB
Baiklah, itu saja untuk saat ini. Berikan komentar, dan pertimbangkan juga mereka yang mengatakan bahwa mereka tidak dapat melakukan caching dan memfilter halaman HTTPS (SSL) di Squid 3.5 atau yang lebih tinggi; saya akan segera menyampaikannya kepada Anda, jadi tetap ikuti blog ini.