Squid yalnızca bir proxy ve önbellek hizmeti değildir, çok daha fazlasını yapabilir: acl'yi (erişim listeleri) yönetebilir, içeriği filtreleyebilir, hatta şeffaf modda bile ssl filtreleme yapabilir (proxy yöntemi - tarayıcılarından proxy ayarlarında yapılandırmaya gerek kalmadan) , ortadaki adam gibi, kimse orada olduğunu bilmiyor). Bu yüzden, bu uygulamanın tam potansiyelinin, her bir parçasını nasıl yapılandıracağımı bilmeyerek nasıl boşa gittiğini görüyorum.
Şimdi kalamarın yaptığı ilginç şey önbellek (bence). Bana neden önbelleğin olduğunu söyleyeceksin Nedeni basit, hızınızı ve bant genişliğinizi daha iyi yönetmek ana şeydir. Dikkatlice düşünün, her 1000 dakikada bir şirketinizdeki 5 kişiye danışmanlık yapıyor, ortak sayfalar, Google, Hotmail, Gmail vb. şeyler, hayır çok sık değişirler, yerel ağınızda saklanmaları daha iyidir ve düşündüğünüz yapılandırmalar içinde yeni olduğunu düşündüğünüz bir kopyasını teslim edersiniz.
Nasıl yapılır Aşağıdaki cümle ile basit:
refresh_pattern [-i] regex min percent max [options]
Her zaman söylediğim gibi, her şeye inanmayın, bu yüzden resmi kaynaktan okumanızı tavsiye ederim. Bu karara ilişkin kılavuzu BURADA okumanızı öneririm.
`refresh_pattern` ifadesi, önbelleğe yeni parametreler eklemek için kullanacağımız etiketimiz olacaktır.
Önemli, önbellek listeleriniz sıralı olmalıdır, çünkü nesneyle eşleşen ilk listeyle eşleştiğinde diğer kurallarınızı okumaya devam etmeyecektir.
Normal ifadeler büyük/küçük harf duyarlıdır, bu nedenle flv ile FLV aynı şey değildir, ancak isterseniz -i seçeneğini kullanarak bunu önleyebilirsiniz . O zaman şöyle görünür: refresh_pattern -i
'Dakika': Bu, bir nesnenin açıkça "süresi dolmuş" etiketi yoksa "güncel" olarak kabul edileceği süredir (dakika cinsinden). Varsayılan olarak, Squid 0 değerini önerir çünkü bazı dinamik uygulamalar garip davranabilir. Bu değer, önbelleğe almak istediğiniz öğeler için yararlı ve etkili olduğunu düşündüğünüz bir sayı olmalıdır. Örneğin, JPG'ler için 1440 dakika (bir gün) bana uygun görünüyor; bir web sitesindeki bir gönderideki resimler her 5 dakikada bir değişmiyor sonuçta.
'Yüzde', bir nesnenin yaşının (son değişiklikten bu yana) "yeni" veya "güncel" olarak kabul edilecek yüzdesidir. Örneğin, en son değişiklikleri görmek için sürekli olarak bir web sayfasını yeniden yüklüyor veya yeniliyorsanız, Squid, nesnenin minimum ve maksimum değerler arasındaki sürenin %50'sine ulaştığını varsayarsa , o nesneyi internetten tekrar indirip size yeni bir kopyasını verebilir.
'Maksimum', bir nesnenin "güncel veya yeni" olarak kabul edildiği süre için ' Minimum' değerinin üstünde veya ona eşit olan sınırdır . Diyelim ki bir sayfadaki bir resim bir kullanıcı tarafından yalnızca bir kez görüntülendi; bu nesne zaten minimum süreye ulaşmıştır, ancak maksimum süreye ulaşmamıştır . Bu nedenle, tekrar görüntülendiğinde, önbelleğe alınmış bir kopyası sunulacaktır.
Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale
Bu seçenekler, önbelleğin etkin kullanımını garanti altına almak için çoğunlukla dillerde ve protokollerde önceden belirlenmiş davranışları göz ardı etmek için yapılmıştır.
override-expire
Sunucu daha kısa bir sona erme süresi gönderdiğinde bile bir nesnenin minimum süresini zorlar (örneğin başlık veya Cache-Control gibi şeyler: max-age). Bunu yaparsak, "HTTP standardını İHLAL EDER" gibi şeyler söyleyen bir "uyarı" görünecektir, ancak bu sadece göz ardı edebileceğimiz uyarılardır. Şimdi bir sunucunun gönderdiği süre daha uzunsa, squid sunucunun zamanını (sona ermesini) alacaktır.
override-lastmod
Bir öğe yakın zamanda değiştirilmiş olsa bile, öğenin minimum süresini güçlendirir.
reload-into-ims
Kısa açıklama, yenileme düğmesine bastığımızda veya önbelleksiz bir istek yaptığımızda, squid'in "o zamandan beri değiştirilmemişse" ve / veya sayfada "başlık" yoksa önbellek teslim etmesini engellemesidir.
ignore-reload
Kullanıcıların sayfayı yeniden yükle veya yenile düğmesine basma eylemini yok sayın
ignore-no-store
Başlıklardaki videoları önbelleğe almama kuralı göz ardı edin
ignore-private
Özel içerik başlıklarında önbelleğe alınmaması gereken herhangi bir kuralı göz ardı edin, örneğin: facebook içeriği.
refresh-ims
Squid, nesnenin en yeni olup olmadığını garanti etmek için sunucuyla iletişim kurar. Eğer öyleyse, önbellek teslim edecek
store-stale
Squid, son kullanma tarihleri olmasa bile tüm bu yanıtları kaydedecek, genellikle tekrar kullanılamayacakları için bu çok pratik değil. Etkinleştirmeye karar verirseniz, max-stale = NN olarak belirtmelisiniz
max-stale=NN
Yukarıdakileri etkinleştirdiyseniz, bu yanıt veya faktör için maksimum bir ömür belirtmelisiniz. Squid bu tarzdaki nesneleri teslim etmez ancak kaynak ile doğrulayabilir.
İşte taze "TAZE" durumunun tartıştığımız değerlere göre nasıl çalıştığına dair bir tablo:
- TAZE eğer> şimdi sona ererse, yoksa STALE
- ESKİ yaş> maksimum ise
- TAZE if lm-faktör <yüzde, aksi takdirde STALE
- TAZE eğer yaş <dk, başka BAYKAN
Burada çok fazla disk alanı, iyi ekipman ve iyi bir bant genişliği olan belirli bir şirket için örnek bir yapılandırma yer almaktadır.
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
Artık önbellekleme sadece sabit diskte değil; RAM'de de önbellekleme yapabiliyoruz. Bu değer her Squid işlemi için geçerlidir, bu nedenle SquidGuard gibi yönlendiriciler kullanırken bunu dikkate almalısınız.
maximum_object_size_in_memory 1024 KB
Squid'in RAM'de depolayacağı bellekteki nesnenin maksimum boyutu. Ayrıca bir minimum beyan edebilirsiniz.
memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF
Gördüğünüz gibi, biri RAM belleğindeki önbelleğin, diğeri ise sabit diskteki değiştirilmesidir. GDSF ve LFUDA olmak üzere 2 politika vardır. Birincisi, elinizde birçok küçük nesne varken önbellek isabetlerinin yüzdesini iyileştirmeyi, ikincisi ise tam tersini arar, boyutları ne olursa olsun nesneleri önbellekte tutar.
Şu anda bana sorduğunuzu düşündüğüm soru, ne kullanmalıyım? Ortamınızda çok sayıda sorgu yaptıklarını ve çok az indirmenin GDSF kullandığını düşünürseniz, aksine birçok indirme ve birkaç LFUDA sorgusu yaparlarsa . Bunu yapacağınız zaman LFUDA'yı önerirsem, bilmiyorum, 1TB diskte önbellekleyin, daha verimli olur.
maximum_object_size 4 MB
Bir nesnenin depolanması gereken maksimum boyut
cache_dir aufs /media/proxy249/cache 100 16 256
Önbelleğin nerede saklanacağına dikkat edin, burada önemli olan, ufs, aufs veya diskd kullanıyorsanız, 3'ü de aşağı yukarı aynı şekilde çalışır, fark, aufs ve diskd'nin sabit diskte G / Ç işlemleri yapmak için ayrı işlemlerle çalışmasıdır. disk ve squid işlemlerinin bu işlemler sırasında askıda kalmasını önleyin, ayrıca diskd bu görev için sahip olacağınız iş parçacığı sayısını belirleyebilirsiniz. İyi bir ekibiniz varsa aufs tavsiye ederim.
Boyut 100 (megabayt), 100000 koyabilirsiniz neredeyse 100 GB olup, kullanılabilirliğinize bağlıdır. 16, klasör sayısıdır ve 256, alt klasör sayısıdır. Her iki değerle oynayabilirsiniz, disklerinizin ne kadar hızlı olduğuna ve ne kadar kaynağınız olduğuna bağlıdır.
cache_swap_low 90
cache_swap_high 95
Bu seçenekler obje değiştirme değerleridir, kalamara göre filigran olarak minimum ve maksimum değerdir, bu sayıların yüzde (%) olduğu yerde ve çok küçük bir önbellekte bunun gibi% 5 şu anda bunun gibi% 300 diyelim. saniyede nesneler, ancak çok büyük önbelleklerde binlerce MB'den bahsediyor oluruz
Şimdilik bu kadar. Yorum yapın ve ayrıca Squid 3.5 veya üzeri sürümlerde HTTPS (SSL) sayfalarını önbelleğe alıp filtreleyemediklerini söyleyenleri de dikkate alın; yakında size bu özelliği sunacağım, bu yüzden bu blogu takip etmeye devam edin.