Predmemorija liganja - 2. dio

Squid nije samo proxy i cache usluga, on može učiniti mnogo više: upravljati acl (pristupnim listama), filtrirati sadržaj, može čak i ssl filtrirati čak i u transparentnom načinu (proxy metoda - bez potrebe za konfiguriranjem u postavkama proxyja iz njihovih preglednika , to je kao čovjek u sredini, niko ne zna da je tamo). Tako često vidim kako se puni potencijal ove aplikacije troši ne znajući kako konfigurirati svaki njen dio.

Sada je zanimljiva stvar koju lignje radi je predmemorija (po mom mišljenju). Reći ćete mi zašto keširati? Razlog je jednostavan, glavno je bolje upravljanje upotrebom vaše brzine i propusnosti. Dobro razmislite, 1000 ljudi u vašoj kompaniji savjetuje se svakih 5 minuta, uobičajene stranice, Google, Hotmail, Gmail itd., Tako da ćete uvijek iznova preuzimati slike, banere, oglašavanje, html sadržaj, sve su to statične stvari, ne oni se tako često mijenjaju, bolje da ih sačuvate u vašoj lokalnoj mreži, a vi dostavite kopiju koju smatrate nedavnom u konfiguracijama koje ste uzeli u obzir.

Kako to učiniti? Jednostavno sa sljedećom rečenicom:

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

Kao što uvijek kažem, ne vjerujte svemu, zato vas pozivam da pročitate iz službenog izvora. Preporučujem vam da pročitate priručnik ove rečenice OVDE

Rečenica refresh_pattern Uvijek će biti naša oznaka za dodavanje novih parametara u predmemoriju.

Važno je da vaši popisi predmemorije moraju biti sekvencijalni, jer kada se podudaraju s prvim koji odgovara objektu, neće nastaviti čitati vaša druga pravila

Regularni izrazi razlikuju velika i mala slova, pa flv nije isto što i FLV, ali to možete izbjeći ako želite upotrebom opcije -i . Tada bi to izgledalo ovako refresh_pattern -i

'Min': To je vrijeme (minute) u kojem će se objekt smatrati "nedavnim ili svježim" i ako nema izričitu oznaku "istekao". Prema zadanim postavkama lignja preporučuje da bude 0, iz razloga što se neke dinamičke aplikacije mogu ponašati neobično, čisto bla bla bla, stvarno bi ova vrijednost trebala biti broj koji smatrate korisnim i učinkovitim za elemente koje želite predmemorirati, primjer: jpg, 1440 minuta (dnevno) čini mi se u redu, nije kao da se slike posta mijenjaju svakih 5 minuta na stranici.

'Procent' To je postotak starosti predmeta (od posljednje modifikacije) koji će se smatrati «nedavnim ili svježim». Dopustite mi da objasnim, možda vršeći stalno učitavanje ili osvježavanje kako bi vidjeli posljednje izmjene koje su napravljene na web stranici, lignje bi mogle razmotriti da li već ima, recimo, 50% vremena završenog min y maksimum, ponovo preuzmite taj objekt s Interneta i dajte vam novu kopiju.

'Max' je granica iznad ili jednaka 'Min' koliko dugo se objekt smatra «nedavnim ili svježim», pretpostavimo da je korisnik neke slike pregledao samo jednom, da je taj objekt već dostigao svoje vrijeme min, ali ne i maksimum, onda će se, kada se ponovo postavi upit, dostaviti kopija predmemorije.

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

Ove su opcije napravljene uglavnom da bi se zanemarilo unaprijed uspostavljeno ponašanje u jezicima i protokolima, kako bi se zajamčila učinkovita upotreba predmemorije.

override-expire

Provodi minimalno vrijeme objekta, čak i ako je poslužitelj poslao kraće vrijeme isteka (primjerice stvari poput zaglavlja ili Cache-Control: max-age). Ako to učinimo, pojavit će se "upozorenje" s ovakvim stvarima "KRŠI HTTP standard", ali to su samo upozorenja koja možemo zanemariti. Ako je vrijeme koje server pošalje duže, lignjama će trebati vrijeme (istek) servera

override-lastmod

Pojačava minimalno vrijeme stavke, čak i ako je ta stavka nedavno izmijenjena.

reload-into-ims

Kratko objašnjenje je da sprečava da kad pritisnemo dugme za osvježavanje ili podnesemo zahtjev bez predmemorije, lignje će isporučiti predmemoriju ako nije "modificirano od" i / ili ako na stranici nema "zaglavlja".

ignore-reload

Zanemarite radnju korisnika da pritisnu dugme za ponovno učitavanje ili osvježavanje stranice

ignore-no-store

Zanemarite bilo koje pravilo u zaglavljima da se ne sprema u predmemoriju, na primjer videozapisi

ignore-private

Zanemarite bilo koja pravila u zaglavljima privatnog sadržaja koja ne bi trebala biti predmemorirana, primjer: sadržaj na facebooku.

refresh-ims

Squid kontaktira server kako bi jamčio je li objekt najnoviji. Ako jeste, isporučit će predmemoriju

store-stale

Lignje će spremiti sve te odgovore, čak i ako nemaju datum isteka, ovo je vrlo nepraktično jer se obično ne mogu ponovo koristiti. Ako ga odlučite omogućiti, morate proglasiti max-stale = NN

max-stale=NN

Ako ste omogućili gore navedeno, morate navesti maksimalni životni vijek za taj odgovor ili faktor. Squid ne isporučuje objekte ovog stila, ali ih može potvrditi s izvorom

Evo tablice kako stanje svježeg "SVJEŽEG" funkcionira u skladu s vrijednostima o kojima smo razgovarali:

  • SVJEŽE ako istekne> sada, u protivnom KRAĐITE
  • PROGRADI ako je dob> maks
  • SVJEŽE ako je lm-faktor <posto, u protivnom KRAĐI
  • SVJEŽE ako je dob <min drugo KRAĐI

Evo primjera konfiguracije za određenu kompaniju s puno prostora na disku, dobrom opremom i dobrom propusnošću

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

Sada se predmemorija nalazi ne samo na tvrdom disku, već možemo i predmemorirati RAM memoriju, ta vrijednost vrijedi za svaki postupak lignje, pa je morate uzeti u obzir kada koristite preusmjerivače poput squidGuard

maximum_object_size_in_memory 1024 KB

Maksimalna veličina objekta u memoriji koju će lignje pohraniti u RAM. Takođe možete proglasiti minimum.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Kao što vidite, jedno je pravilo za zamjenu predmemorije u RAM memoriji, a drugo na tvrdom disku. Postoje 2 politike GDSF i LFUDA. Prvi želi poboljšati postotak pogodaka predmemorije, imajući pri ruci mnogo malih predmeta, drugi traži suprotno, zadržava predmete u predmemoriji bez obzira na njihovu veličinu.

Pitanje za koje pretpostavljam da me trenutno postavljate je, koju korist koristim? Pa, ako smatrate da u vašem okruženju oni vrše mnogo upita, a malo preuzimanja koristi GDSF ako, naprotiv, izvrše mnogo preuzimanja i malo LFUDA upita. Da ako preporučim LFUDA kada ćete, ne znam, predmemorirati na 1TB diska, to je učinkovitije.

maximum_object_size 4 MB

Maksimalna veličina koju objekt mora čuvati

cache_dir aufs /media/proxy249/cache 100 16 256

Gdje će se pohraniti predmemorija, ovdje je pažnja važna ako koristite ufs, aufs ili diskd, sve tri rade više-manje isto, razlika je u tome što aufs i diskd rade s odvojenim procesima kako bi izvršili I / O operacije na tvrdog diska i izbjegavajte da liganski procesi vise tijekom ovih operacija, osim toga na disku možete odrediti broj niti koji ćete imati za ovaj zadatak. Ako imate dobar tim, preporučujem aufs.

Veličina 100 (megabajta), možete staviti 100000 je gotovo 100 GB, ovisi o vašoj dostupnosti. 16 je broj mapa, a 256 podmapa. Možete se igrati s obje vrijednosti, ovisi o brzini diskova i o količini resursa.


cache_swap_low 90
cache_swap_high 95

Ove opcije su vrijednosti zamjene objekta, to je minimalna i maksimalna vrijednost kao vodeni žig prema lignjama, gdje su ovi brojevi u postocima (%), a u vrlo malom predmemoriji, 5% poput ovog trenutno bi bilo recimo 300 objekata u sekundi , ali u vrlo velikim predmemorijama govorili bismo o hiljadama MB

Pa, tu vas ostavljam, ovo za sada, komentirajte a uzeti u obzir i one koji su mi rekli da ne mogu keširati i filtrirati https stranice (SSL) u squid 3.5 ili novijoj verziji, donijet ću vam ih uskoro, pratite ovaj blog.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   ing. Jose Albert rekao je

    Izvrsna nadopuna prvom dijelu!

    O Squidu postoji mnogo literature, ali prelazak na stvar u najpraktičnijim opcijama sa njihovim objašnjenjima i mogućim stvarnim scenarijima upotrebe nije uvijek pri ruci!

    Kao i uvijek, radujem se trećem dijelu!

    1.    brodydalle rekao je

      Hvala na komentaru. Točno je, sažeto objašnjenje svih relevantnih elemenata i postavka najbolje prakse. Međutim, uvijek sam pažljiv na vaše komentare i vlastita iskustva.

  2.   artus rekao je

    Pozdrav, imam problem sa ažuriranjima za Windows i antivirusom. Imam otprilike 120 kom u svojoj ustanovi. Možete li mi dati ideju kako poboljšati ovu situaciju. Hvala na pomoći i čestitamo na članku.

    1.    brodydalle rekao je

      Pozdrav, hvala na sudjelovanju .. pa, ako vam mogu pomoći, ali dobro objasnite u čemu je vaš problem, ne možete preuzeti ažuriranja? Jeste li stavili proxy u Internet opcije, a isti u proxy opcije vašeg pretraživača? Jeste li provjerili portove ili želite ove ispravke predmemorirati?

      1.    artus rekao je

        Ono što mi treba je da svaki put kada računalo preuzme Windows ili antivirusno ažuriranje, ono ostaje u predmemoriji oko mjesec dana, na ovaj način bih želio uštedjeti propusnost, jer svako jutro svaki put svi računari počinju da preuzimaju iste ispravke, a svaka od njih zasićuje se.

        Hvala na pomoći.

    2.    Mario rekao je

      Server sa Squidom radi, jer se radi o jednostavnim nešifriranim http preuzimanjima. Ostala rješenja za predmemoriju su WSUS i Altiris, uobičajena u kompanijama.

      1.    artus rekao je

        Hvala Mario, imaću to na umu.

    3.    brodydalle rekao je

      ok spreman, razumijem, provjeri ovaj link. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. Da biste antivirus predmemorirali, morate znati odakle se preuzimaju ispravke i pod kojim proširenjem (primjer .exe) i predmemorirati ga ...

  3.   artus rekao je

    Hvala na pomoći.

  4.   Erick rekao je

    Dobro jutro prijatelji, možete li me podržati u mom slučaju. s obzirom da na debian 2.7 imam squid 9 .STABLE6 i sve sam konfigurirao i kad ga montiram u okruženje od 10 kom, dobijem normalnu poštu, problem leži kad ga montiram za 90 kom, traje samo nekoliko sekundi i odatle svi rade ostaju bez interneta. Možete li me podržati?

  5.   JOSE RIVAS rekao je

    Izvrsno objašnjenje, osnovno, ali vrlo jasno i precizno. Osobno najbolje objašnjenje koje sam uspio pročitati.
    Imam pitanje, da li je moguće predmemorirati Android aplikacije kao što su apk i xapk?
    A koji bi bio ispravan način konfiguriranja dinamičke predmemorije bez obzira na porijeklo datoteka?
    Koristim pfSense 2.4.5.