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.
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!
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.
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.
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?
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.
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.
Hvala Mario, imaću to na umu.
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 ...
Hvala na pomoći.
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?
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.