Squid cache - časť 2

Squid nie je len služba proxy a cache, dokáže oveľa viac: spravuje ACL (zoznamy prístupov), filtruje obsah, dokonca dokáže filtrovať SSL aj v priehľadnom režime (metóda proxy - bez nutnosti konfigurácie v nastaveniach proxy servera. z ich prehliadačov je to ako človek v strede, nikto nevie, že to tam je). Často teda vidím, ako sa míňa celý potenciál tejto aplikácie tým, že neviem, ako nakonfigurovať jednotlivé jej časti.

Teraz je zaujímavá vec, ktorú squid robí (podľa môjho názoru) cache. Poviete mi, prečo cache? Dôvod je jednoduchý, hlavná vec je lepšie spravovať využitie svojej rýchlosti a šírky pásma. Dobre si premyslite, 1000 5 ľudí vo vašej spoločnosti, ktorí každých XNUMX minút konzultujú, bežné stránky, Google, Hotmail, Gmail atď., Takže budete opakovane sťahovať obrázky, bannery, reklamu, html obsah, všetko sú to statické veci, nie. menia sa tak často, lepšie je mať ich uložené v miestnej sieti a vy doručíte kópiu, ktorú považujete za poslednú v rámci konfigurácií, ktoré ste zvážili.

Ako na to? Jednoduché s nasledujúcou vetou:

refresh_pattern [-i] regex min percent max [options]

Ako vždy hovorím, neverte všetkému, preto vás pozývam na čítanie z oficiálneho zdroja. Odporúčam prečítať si príručku k tejto vete TU

Veta refresh_pattern Náš štítok bude vždy pridávať nové parametre do medzipamäte.

Je dôležité, aby vaše zoznamy cache boli postupné, pretože akonáhle sa zhoduje s prvým, ktorý sa zhoduje s objektom, nebude pokračovať v čítaní vašich ďalších pravidiel

Regulárne výrazy rozlišujú veľké a malé písmená, preto flv nie je to isté ako FLV, ale tomu sa môžete vyhnúť, ak si prajete, pomocou možnosti -i . Potom by to vyzeralo takto obnovovací_vzor -i

„Min.“: je čas (minúty), v ktorom bude objekt považovaný za „nedávny alebo čerstvý“ a ak nemá explicitný štítok „vypršala“. V predvolenom nastavení squid odporúča, aby bola 0, z dôvodu, že sa niektoré dynamické aplikácie môžu správať zvláštne, číre bla bla bla, skutočne by táto hodnota mala byť číslo, ktoré považujete za užitočné a efektívne pre prvky, ktoré chcete uložiť do medzipamäte, príklad: jpg, 1440 minút (deň) sa mi zdá v poriadku, nie je to tak, ako keby sa obrázky príspevku zmenili každých 5 minút na stránke.

„Percento“ Je to percento veku objektu (od poslednej úpravy), ktorý sa bude považovať za «nedávny alebo čerstvý». Vysvetlím, že možno robím neustále načítanie alebo obnovenie, aby som videl posledné úpravy, ktoré boli urobené na webovej stránke. Squid by mohol zvážiť, či už má, povedzme, 50% času dokončeného medzi minút y max, znova stiahnite tento objekt z internetu a získate novú kópiu.

„Max“ je limit nad alebo rovný „Min.“ ako dlho sa objekt považuje za «nedávny alebo čerstvý», predpokladajme, že obrázok niektorej stránky bol používateľom skontrolovaný iba raz, tento objekt už dosiahol svoj čas minút, ale nie max, potom keď sa na ňu znovu opýtate, doručí sa kópia vyrovnávacej pamäte.

Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale

Tieto možnosti boli urobené väčšinou kvôli ignorovaniu vopred nastaveného správania v jazykoch a protokoloch, aby sa zaručilo efektívne využitie medzipamäte.

override-expire

Vynucuje minimálny čas objektu, a to aj v prípade, že server poslal kratší čas vypršania platnosti (napríklad veci ako hlavička alebo Cache-Control: max-age). Ak to urobíme, zobrazí sa „varovanie“, ktoré bude hovoriť napríklad „PORUŠUJE štandard HTTP“, ale sú to iba varovania, ktoré môžeme ignorovať. Teraz, ak je čas, ktorý server pošle, dlhší, potom chobotnica zaberie čas (expiráciu) servera

override-lastmod

Posilňuje minimálny čas položky, aj keď bola položka nedávno upravená.

reload-into-ims

Krátke vysvetlenie spočíva v tom, že zabráni tomu, že keď stlačíme tlačidlo obnovenia alebo vykonáme požiadavku bez vyrovnávacej pamäte, squid doručí vyrovnávaciu pamäť, ak od tej doby nebola „upravená“ alebo ak na stránke nie sú „hlavičky“.

ignore-reload

Ignorujte činnosť používateľov pri stlačení tlačidla znovu načítať alebo obnoviť stránku

ignore-no-store

Ignorujte akékoľvek pravidlo v hlavičkách, ktoré nemá ukladať do medzipamäte, napríklad videá

ignore-private

Ignorujte všetky pravidlá v hlavičkách súkromného obsahu, ktoré by sa nemali ukladať do medzipamäte, napríklad: obsah facebooku.

refresh-ims

Squid kontaktuje server, aby zaručil, že je objekt najnovší. Ak je, potom doručí vyrovnávaciu pamäť

store-stale

Squid všetky tieto odpovede uloží, aj keď nemajú dátum vypršania platnosti, je to veľmi nepraktické, pretože sa zvyčajne nedajú znova použiť. Ak sa ho rozhodnete povoliť, musíte deklarovať max-stale = NN

max-stale=NN

Ak ste povolili vyššie uvedené, musíte pre uvedenú odpoveď alebo faktor deklarovať maximálnu životnosť. Squid nedodáva objekty tohto štýlu, ale môže ho overiť pomocou zdroja

Tu je tabuľka toho, ako stav čerstvého „FRESH“ funguje podľa hodnôt, o ktorých sme diskutovali:

  • ČERSTVÉ, ak vyprší platnosť> teraz, inak STALE
  • OBCHOD, ak vek> max
  • FRESH if lm-factor <percent, else STALE
  • ČERSTVÉ, ak vek <min. Iný STALE

Tu je príklad konfigurácie pre konkrétnu spoločnosť s veľkým priestorom na disku, dobrým vybavením a dobrou šírkou 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

Teraz nie je vyrovnávacia pamäť iba na pevnom disku, môžeme pamätať aj pamäť RAM, táto hodnota je pre každý proces chobotnice, takže ju musíte brať do úvahy, keď používate presmerovače ako squidGuard

maximum_object_size_in_memory 1024 KB

Maximálna veľkosť objektu v pamäti, ktorú chobotnica uloží do RAM. Môžete tiež deklarovať minimum.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Ako vidíte, jednou z nich je politika výmeny medzipamäte v pamäti RAM a druhou v prípade pevného disku. Existujú 2 pravidlá GDSF a LFUDA. Prvý sa snaží zlepšiť percento zásahov do vyrovnávacej pamäte, keď má po ruke veľa malých objektov, druhý sa snaží o pravý opak, udržuje objekty v vyrovnávacej pamäti bez ohľadu na ich veľkosť.

Otázka, ktorú si myslím, že sa ma v tejto chvíli pýtate, je, aké použitie mám použiť? No, ak vezmete do úvahy, že vo vašom prostredí robia veľa dotazov a málo súborov na stiahnutie používa GDSF, ak naopak veľa sťahuje a málo dotazov LFUDA. Že ak odporúčam LFUDA, keď sa chystáte robiť, neviem, cache do 1TB disku, je to efektívnejšie.

maximum_object_size 4 MB

Maximálna veľkosť, ktorú musí byť objekt možné uložiť

cache_dir aufs /media/proxy249/cache 100 16 256

Tam, kde bude uložená vyrovnávacia pamäť, tu treba venovať pozornosť, je dôležité, ak používate ufs, aufs alebo diskd, všetky 3 pracujú viacmenej rovnako, rozdiel je v tom, že aufs a diskd pracujú so samostatnými procesmi, aby vykonávali I / O operácie na pevnom disku a zabráňte tomu, aby procesy chobotnice viseli počas týchto operácií, navyše diskd môžete určiť počet vlákien, ktoré budete mať pre túto úlohu. Odporúčam aufs, ak máte dobrý tím.

Veľkosť 100 (megabajtov), ​​môžete dať 100000, je takmer 100 GB, závisí od vašej dostupnosti. 16 je počet priečinkov a 256 je počet podpriečinkov. Môžete hrať s oboma hodnotami, čo závisí od toho, ako rýchle sú vaše disky a koľko máte zdrojov.


cache_swap_low 90
cache_swap_high 95

Tieto možnosti sú hodnoty nahradenia objektu, ide o minimálnu a maximálnu hodnotu ako vodoznak podľa squidu, kde sú tieto čísla v percentách (%) a vo veľmi malej medzipamäti by teraz bolo 5% povedzme 300 objektov za sekundu. , ale vo veľmi veľkých keškách by sme hovorili o tisícoch MB

No, tu vás nechávam, zatiaľ toto, komentujte a tiež vezmite do úvahy tých, ktorí mi povedali, že nemôžu ukladať do vyrovnávacej pamäte a filtrovať https stránky (SSL) v chobotnici 3.5 alebo vyššej, čoskoro vám ich prinesiem, zostaňte naladení na tento blog.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Ing.Jose Albert dijo

    Vynikajúci doplnok k prvej časti!

    O Squidovi je veľa literatúry, ale dostať sa k bodu v jeho najpraktickejších možnostiach s príslušnými vysvetleniami a možnými scenármi skutočného použitia nie sú vždy po ruke!

    Ako vždy sa teším na jej tretiu časť!

    1.    brodydalle dijo

      Ďakujeme za váš komentár. Je to správne, stručné vysvetlenie všetkých dôležitých prvkov a nastavenie osvedčených postupov. Vždy však pozorne sledujem vaše komentáre a vlastné skúsenosti.

  2.   Artus dijo

    Dobrý deň, mám problém s aktualizáciami systému Windows a antivírusom. Mám vo svojej inštitúcii približne 120 kusov. Mohli by ste mi dať predstavu, ako zlepšiť túto situáciu. Ďakujeme za pomoc a blahoželáme k článku.

    1.    brodydalle dijo

      Dobrý deň, ďakujem za účasť .. no ak vám môžem pomôcť, ale dobre vysvetlite, v čom máte problém, nemôžete si stiahnuť aktualizácie? Dali ste proxy server do možností Internetu a to isté do možností proxy prehliadača? Skontrolovali ste porty? Alebo chcete tieto aktualizácie uložiť do medzipamäte?

      1.    Artus dijo

        Potrebujem to, aby zakaždým, keď si počítač stiahne aktualizáciu systému Windows alebo antivírusový program, zostal v pamäti cache približne jeden mesiac, takže by som rád šetril šírku pásma, pretože vždy každé ráno. všetky počítače začnú sťahovať tie isté aktualizácie a pripojenie bude nasýtené.

        Vďaka za vašu pomoc.

    2.    mario dijo

      Server so Squidom funguje, pretože ide o jednoduché nezašifrované sťahovania http. Ďalšie riešenia pre vyrovnávaciu pamäť sú WSUS a Altiris, bežné v spoločnostiach.

      1.    Artus dijo

        Vďaka Mario, budem to mať na pamäti.

    3.    brodydalle dijo

      ok pripravený, rozumiem, skontroluj tento odkaz. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. na ukladanie antivírusových súborov do vyrovnávacej pamäte musíte vedieť, odkiaľ sa aktualizácie sťahujú a pod akou príponou (napríklad .exe), a ukladať ich do vyrovnávacej pamäte ...

  3.   Artus dijo

    Vďaka za vašu pomoc.

  4.   Erick dijo

    Dobré ráno priatelia, mohli by ste ma podporiť v mojom prípade. kedze mam squid 2.7 .STABLE9 na debian 6 a mam vsetko nakonfigurovane a pri namontovani do 10 pc prostredia mi pride normalna pošta, problem tkvie ked ho namontujem na 90 pc, vydrzi to len par sekund a odtial su vsetci zostávajú bez internetu. Môžete ma podporiť?

  5.   JOSE RIVAS dijo

    Vynikajúce vysvetlenie, základné, ale veľmi jasné a presné. Osobne najlepšie vysvetlenie, aké som bol schopný prečítať.
    Mám otázku, je možné ukladať aplikácie pre Android do vyrovnávacej pamäte ako apk a xapk?
    A aký by bol správny spôsob konfigurácie dynamickej medzipamäte bez ohľadu na pôvod súborov?
    Používam pfSense 2.4.5.