Squid není jen služba proxy a mezipaměti, dokáže mnohem víc: spravuje ACL (přístupové seznamy), filtruje obsah, může dokonce provádět filtrování SSL i v transparentním režimu (metoda proxy - bez nutnosti konfigurace v nastavení proxy z jejich prohlížečů je to jako člověk uprostřed, nikdo neví, že to tam je). Běžně tedy vidím, jak se plýtvá potenciál této aplikace tím, že nevím, jak nakonfigurovat každou z jejích částí.
Zajímavá věc, kterou chobotnice dělá, je mezipaměť (podle mého názoru). Řeknete mi, proč mezipaměť? Důvod je jednoduchý, lepší správa využití vaší rychlosti a šířky pásma, to je hlavní věc. Pečlivě si promyslete, 1000 5 lidí ve vaší společnosti, kteří každých XNUMX minut konzultují, běžné stránky, Google, Hotmail, Gmail atd., Takže budete znovu a znovu stahovat obrázky, bannery, reklamu, html obsah, to vše jsou statické věci, ne Mění se tak často, lepší je mít uložené v místní síti a vy doručit kopii, kterou považujete za poslední v rámci konfigurací, které jste zvažovali.
Jak na to? Jednoduché s následující větou:
refresh_pattern [-i] regex min percent max [options]
Jak vždycky říkám, nevěřte všemu, proto vám doporučuji číst z oficiálního zdroje. Doporučuji si přečíst manuál k tomuto rozhodnutí ZDE.
Příkaz refresh_pattern bude vždy naším tagem pro přidávání nových parametrů do mezipaměti.
Důležité: vaše seznamy mezipaměti musí být postupné, protože jakmile se shoduje s prvním, který odpovídá objektu, nebude pokračovat ve čtení vašich dalších pravidel.
Regulární výrazy rozlišují velká a malá písmena, takže flv není totéž co FLV, ale tomu se můžete vyhnout použitím volby -i . Pak by to vypadalo takto: refresh_pattern -i
„Min“: Toto je doba (v minutách), po kterou bude objekt považován za „čerstvý“, pokud nemá explicitní tag „vypršela platnost“. Squid ve výchozím nastavení doporučuje 0, protože některé dynamické aplikace se mohou chovat podivně. Tato hodnota by měla být číslo, které považujete za užitečné a efektivní pro prvky, které chcete ukládat do mezipaměti. Například 1440 minut (jeden den) se mi zdá v pořádku pro JPG; není to tak, že by se obrázky v příspěvku na webu měnily každých 5 minut.
„Procento“ je procento stáří objektu (od poslední úpravy), které bude považováno za „nedávné“ nebo „čerstvé“. Pokud například neustále znovu načítáte nebo obnovujete webovou stránku, abyste viděli nejnovější úpravy, Squid by mohl uvažovat o tom, že pokud objekt dosáhl například 50 % času mezi minimální a maximální hodnotou , stáhne tento objekt z internetu znovu a poskytne vám novou kopii.
„Max“ je limit nad nebo rovný „Min“ , po jak dlouho je objekt považován za „nedávný nebo čerstvý“. Předpokládejme, že obrázek na stránce byl uživatelem zobrazen pouze jednou; tento objekt již dosáhl minimálního času , ale nikoli maximálního času . Takže při dalším zobrazení bude doručena kopie uložená v mezipaměti.
Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale
Tyto možnosti byly provedeny hlavně kvůli ignorování předem stanoveného chování v jazycích a protokolech, aby bylo zaručeno efektivní využití mezipaměti.
override-expire
Vynucuje minimální čas objektu, i když server poslal kratší dobu vypršení platnosti (například věci jako záhlaví nebo Cache-Control: max-age). Pokud to uděláme, objeví se „varování“, které říká takové věci „PORUŠUJE standard HTTP“, ale to jsou jen varování, která můžeme ignorovat. Nyní, pokud je čas odeslaný serverem delší, squid zabere čas (expiraci) serveru
override-lastmod
Posiluje minimální čas položky, i když byla položka nedávno upravena.
reload-into-ims
Krátké vysvětlení spočívá v tom, že brání tomu, že když stiskneme tlačítko pro obnovení nebo zadáme požadavek bez mezipaměti, squid doručí mezipaměť, pokud od té doby nebyla „změněna“ a / nebo pokud na stránce nejsou žádné „záhlaví“.
ignore-reload
Ignorujte akci uživatelů, kteří stiskli tlačítko znovu načíst nebo obnovit stránku
ignore-no-store
Ignorujte jakékoli pravidlo v záhlaví, které nemá ukládat do mezipaměti, například videa
ignore-private
Ignorujte všechna pravidla v záhlavích soukromého obsahu, která by neměla být ukládána do mezipaměti, například: obsah facebooku.
refresh-ims
Squid kontaktuje server, aby zaručil, že je objekt nejnovější. Pokud ano, dodá mezipaměť
store-stale
Squid uloží všechny tyto odpovědi, i když nemají datum vypršení platnosti, je to velmi nepraktické, protože je obvykle nelze znovu použít. Pokud se rozhodnete jej povolit, musíte deklarovat max-stale = NN
max-stale=NN
Pokud jste povolili výše uvedené, musíte pro danou odpověď nebo faktor deklarovat maximální životnost. Squid nedodává objekty tohoto stylu, ale může jej ověřit pomocí zdroje
Zde je tabulka toho, jak stav čerstvého „FRESH“ funguje podle hodnot, o kterých jsme diskutovali:
- FRESH if expire> now, else STALE
- PRODEJ, pokud věk> max
- FRESH if lm-factor <percent, else STALE
- FRESH if age <min else STALE
Zde je příklad konfigurace pro konkrétní společnost se spoustou místa na disku, dobrým vybavením a dobrou šířkou pásma
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
Ukládání do mezipaměti nyní neprobíhá pouze na pevném disku, můžeme jej ukládat i do paměti RAM. Tato hodnota je pro každý proces Squidu, takže byste ji měli vzít v úvahu při používání přesměrovačů, jako je SquidGuard.
maximum_object_size_in_memory 1024 KB
Maximální velikost objektu v paměti, kterou chobotnice uloží do paměti RAM. Můžete také deklarovat minimum.
memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF
Jak vidíte, jedním z nich je politika pro nahrazení mezipaměti v paměti RAM a druhým v pevném disku. Existují 2 zásady GDSF a LFUDA. První se snaží zlepšit procento zásahů do mezipaměti, má po ruce mnoho malých objektů, druhý hledá opak, udržuje objekty v mezipaměti bez ohledu na jejich velikost.
Otázka, kterou si představuji, že se mě v tuto chvíli ptáte, je, jaké použití mám použít? Pokud si vezmete v úvahu, že ve vašem prostředí dělají spoustu dotazů a málo stahování používá GDSF, pokud naopak dělají hodně stahování a pár dotazů LFUDA. Že pokud doporučuji LFUDA, když se chystáte dělat, nevím, ukládat do mezipaměti na 1TB disku, je to efektivnější.
maximum_object_size 4 MB
Maximální velikost, kterou může být objekt třeba uložit
cache_dir aufs /media/proxy249/cache 100 16 256
Tam, kde bude uložena mezipaměť, zde věnujte pozornost, důležité je, pokud používáte ufs, aufs nebo diskd, všechny 3 fungují víceméně stejně, rozdíl je v tom, že aufs a diskd pracují se samostatnými procesy, aby prováděly I / O operace na pevném disku a vyhněte se tomu, že během těchto operací budou chobotnice viset, navíc diskd můžete určit počet vláken, které budete mít pro tuto úlohu. Doporučuji aufs, pokud máte dobrý tým.
Velikost 100 (megabajtů), můžete dát 100000, je téměř 100 GB, záleží na vaší dostupnosti. 16 je počet složek a 256 je počet podsložek. Můžete hrát s oběma hodnotami, záleží na tom, jak rychlé jsou vaše disky a kolik máte zdrojů.
cache_swap_low 90
cache_swap_high 95
Tyto možnosti jsou hodnoty nahrazení objektů, jedná se o minimální a maximální hodnotu jako vodoznak podle chobotnice, kde jsou tato čísla v procentech (%) a ve velmi malé mezipaměti by 5% jako teď bylo řekněme 300 objektů za sekundu , ale ve velmi velkých mezipaměti bychom mluvili o tisících MB
To je prozatím vše. Pište komentáře a berte v úvahu i ty, kteří mi říkali, že ve Squidu 3.5 a vyšším nemohou ukládat do mezipaměti a filtrovat stránky HTTPS (SSL); brzy vám to přinesu, takže sledujte tento blog.