Predmemorija liganja - 2. dio

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

Sad je zanimljiva stvar koju lignje rade predmemorija (po mom mišljenju). Reći ćete mi, zašto predmemorija? Razlog je jednostavan, glavno je bolje upravljati upotrebom svoje brzine i propusnosti. Dobro razmislite, 1000 ljudi u vašoj tvrtki savjetuje se svakih 5 minuta, uobičajene stranice, Google, Hotmail, Gmail itd., Tako da ćete uvijek iznova preuzimati slike, natpise, oglašavanje, html sadržaj, sve su to statične stvari, ne Mijenjaju se tako često, bolje je da se pohrane na vašoj lokalnoj mreži i dostave 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 u sve, zato vas pozivam da pročitate iz službenog izvora. Preporučujem vam da pročitate priručnik ove rečenice OVDJE

Rečenica osvježi_uzorak Naša će oznaka uvijek biti dodavanje novih parametara u predmemoriju.

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

Regularni izrazi razlikuju velika i mala slova, stoga flv nije isto što i FLV, ali to možete izbjeći ako želite upotrebom opcije -i . Tada bi to izgledalo ovako osvježiti_ obrazac -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 ova vrijednost bi 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.

'Postotak' To je postotak starosti predmeta (od posljednje izmjene) koji će se smatrati «nedavnim ili svježim». Dopustite mi da objasnim, možda vršeći konstantno ponovno učitavanje ili osvježavanje kako bi vidjeli posljednje izmjene na web stranici, lignje bi mogle razmotriti je li već imalo, recimo, 50% vremena završenog između minuta y max, 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 sliku neke stranice korisnik pregledao samo jednom, da je taj objekt već dosegao svoje vrijeme minuta, ali ne i max, a nakon ponovnog upita isporučit će se 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 poslužitelj šalje duže, lignjama će trebati vrijeme (istek) poslužitelja

override-lastmod

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

reload-into-ims

Kratko objašnjenje je da sprječava da kad pritisnemo gumb za osvježavanje ili podnesemo zahtjev bez predmemorije, lignje će dostaviti predmemoriju ako nije "promijenjeno od" i / ili ako na stranici nema "zaglavlja".

ignore-reload

Zanemarite radnju korisnika da pritisnu gumb 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 koje pravilo u zaglavljima privatnog sadržaja koje se ne smije predmemorirati, primjer: sadržaj na facebooku.

refresh-ims

Squid kontaktira poslužitelj kako bi jamčio je li objekt najnoviji. Ako je tada, 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 ponovno upotrijebiti. 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. Lignja ne isporučuje predmete ovog stila, ali ih može potvrditi s izvorom

Evo tablice kako stanje "FRESH" funkcionira u skladu s vrijednostima o kojima smo razgovarali:

  • SVJEŽE ako isteknu> sada, u protivnom STALE
  • PRODATI ako je dob> maks
  • SVJEŽE ako je lm-faktor <posto, u suprotnom STALE
  • SVJEŽE ako je dob <min drugo UKRATI

Evo primjera konfiguracije za određenu tvrtku 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 predmeta u memoriji koju će lignje pohraniti u RAM. Također 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 mi ga trenutno postavljate je, koju korist koristim? Pa, ako smatrate da u vašem okruženju rade mnogo upita, a malo preuzimanja koristi GDSF ako, naprotiv, izvrše mnogo preuzimanja i malo LFUDA upita. Ako preporučim LFUDA-u kada ćete, ne znam, predmemorirati na 1TB diska, to je učinkovitije.

maximum_object_size 4 MB

Maksimalna veličina koju objekt mora imati za pohranu

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 radi I / O operacija na tvrdom disku i izbjegavajte da liganski procesi vise tijekom ovih operacija, osim toga na disku možete odrediti broj niti koje ćete imati za ovaj zadatak. Ako imate dobar tim, preporučujem aufs.

Veličina 100 (megabajta), možete staviti 100000 je gotovo 100 GB, ovisno 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

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

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


11 komentara, ostavi svoj

Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   ing. Jose Albert dijo

    Izvrsna nadopuna prvom dijelu!

    O njemu postoji puno literature o lignjama, ali prijelaz na stvar u najpraktičnijim opcijama s njihovim pojašnjenjima i mogućim scenarijima stvarne upotrebe nisu uvijek pri ruci!

    Kao i uvijek, radujem se trećem dijelu!

    1.    brodydalle dijo

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

  2.   artus dijo

    Pozdrav, imam problem s ažuriranjima sustava 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 čestitke na članku.

    1.    brodydalle dijo

      Pozdrav, hvala na sudjelovanju .. dobro, 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 svog preglednika? Jeste li provjerili priključke? Ili želite predmemorirati ova ažuriranja?

      1.    artus dijo

        Ono što trebam je da svaki put kada računalo preuzme Windows ili antivirusno ažuriranje, ono ostaje u predmemoriji oko mjesec dana, na taj način bih želio uštedjeti propusnost, jer svako jutro svaki put sva računala počnu preuzimati iste nadogradnje, a svaka se veza zasiti.

        Hvala na pomoći.

    2.    Mario dijo

      Poslužitelj sa Squidom radi jer su to jednostavna nešifrirana http preuzimanja. Ostala rješenja za predmemoriju su WSUS i Altiris, uobičajena u tvrtkama.

      1.    artus dijo

        Hvala Mario, imat ću to na umu.

    3.    brodydalle dijo

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

  3.   artus dijo

    Hvala na pomoći.

  4.   Erick dijo

    Dobro jutro prijatelji, možete li me podržati u mom slučaju. Budući da imam lignju 2.7 .STABLE9 na debianu 6 i sve sam konfigurirao i kad ga montiram u okruženje od 10 kom, dobivam normalnu poštu, problem leži kad ga montiram za 90 kom, traje samo nekoliko sekundi i odatle svi mogu ostaju bez interneta. Možete li me podržati?

  5.   JOSE RIVAS dijo

    Izvrsno objašnjenje, osnovno, ali vrlo jasno i precizno. Osobno najbolje objašnjenje koje sam uspio pročitati.
    Imam pitanje, je li 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 podrijetlo datoteka?
    Koristim pfSense 2.4.5.