Squid ni samo storitev proxy in predpomnilnika, temveč lahko naredi veliko več: upravlja acl (sezname dostopa), filtrira vsebino, lahko celo filtrira ssl tudi v preglednem načinu (metoda proxy - brez potrebe po konfiguraciji v nastavitvah proxyja) od njihovih brskalnikov je kot človek na sredini, nihče ne ve, da je tam). Tako pogosto vidim, kako zapravljamo ves potencial te aplikacije, ker ne vemo, kako konfigurirati vsak njen del.
Zdaj je zanimivost, ki jo počne lignji, predpomnilnik (po mojem mnenju). Mi boste povedali, zakaj predpomnilnik? Razlog je preprost, glavna stvar je boljše upravljanje uporabe vaše hitrosti in pasovne širine. Dobro premislite, 1000 ljudi v vašem podjetju se vsakih 5 minut posvetuje, običajne strani, Google, Hotmail, Gmail itd., Tako da boste vedno znova prenašali slike, pasice, oglaševanje, html vsebino, vse to so statične stvari, ne Spreminjajo se tako pogosto, bolje je, da se shranijo v vašem lokalnem omrežju, vi pa dostavite kopijo, ki se vam zdi nedavna v konfiguracijah, ki ste jih upoštevali.
Kako to narediti? Preprosto z naslednjim stavkom:
refresh_pattern [-i] regex min percent max [options]
Kot vedno rečem, ne verjemite vsemu, zato vas vabim k branju iz uradnega vira. Priporočam, da preberete priročnik tega stavka TUKAJ
Stavek osveži_vzorec Za dodajanje novih parametrov v predpomnilnik bo vedno naša oznaka.
Pomembno je, da morajo biti vaši seznami predpomnilnika zaporedni, saj ko se ujema s prvim, ki ustreza predmetu, ne bo nadaljeval z branjem drugih pravil.
Regularni izrazi razlikujejo med velikimi in malimi črkami, zato flv ni isto kot FLV, vendar se temu lahko izognete z uporabo možnosti -i . Potem bi izgledalo takole osveži_vzorec -i
'Min': je čas (minute), v katerem bo predmet veljal za "nedavnega ali svežega" in če nima izrecne oznake "potekel". Privzeto lignji priporočajo, da je 0, ker se nekatere dinamične aplikacije lahko obnašajo nenavadno, čisto bla bla bla, res bi morala biti ta vrednost številka, ki se vam zdi koristna in učinkovita za elemente, ki jih želite predpomniti, primer: jpg, 1440 minut (na dan) se mi zdi v redu, ni tako, če se slike objave na strani spremenijo vsakih 5 minut.
'Odstotek' To je odstotek starosti predmeta (od zadnje spremembe), ki se bo štel za "nedavno ali sveže". Naj razložim, morda s stalnim vnovičnim nalaganjem ali osveževanjem, da bi videl zadnje spremembe spletne strani, bi lahko lignji razmislili, če že imajo recimo 50% časa med minut y max, znova naložite ta predmet z interneta in vam dajte novo kopijo.
'Max' je meja nad ali enaka 'Min' kako dolgo se predmet šteje za »nedavnega ali svežega«, predpostavimo, da je uporabnik sliko neke strani pregledal le enkrat, da je predmet že dosegel svoj čas minut, vendar ne max, nato pa bo po ponovnem poizvedbi dostavljena kopija predpomnilnika.
Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale
Te možnosti so bile narejene večinoma za ignoriranje vnaprej vzpostavljenega vedenja v jezikih in protokolih, da bi zagotovili učinkovito uporabo predpomnilnika.
override-expire
Izvaja minimalni čas predmeta, tudi če je strežnik poslal krajši čas poteka (na primer stvari, kot sta glava ali nadzor predpomnilnika: max-age). Če to storimo, se bo pojavilo "opozorilo", ki govori o takšnih stvareh "KRŠI standard HTTP", vendar so to le opozorila, ki jih lahko prezremo. Če je čas, ki ga strežnik pošlje daljši, si lignji vzame čas (iztek) strežnika
override-lastmod
Ojača najkrajši čas predmeta, tudi če je bil pred kratkim spremenjen.
reload-into-ims
Kratka razlaga je, da preprečuje, da bodo lignji, ko pritisnemo gumb za osvežitev ali če ne zahtevamo predpomnilnika, dostavili predpomnilnik, če ni bil "spremenjen od" in / ali če na strani ni "glav".
ignore-reload
Prezri dejanje uporabnikov, da pritisnejo gumb za ponovno nalaganje ali osvežitev strani
ignore-no-store
Ne upoštevajte nobenega pravila v glavah, da se ne shrani v predpomnilnik, na primer videoposnetki
ignore-private
Ne upoštevajte nobenega pravila v glavah zasebne vsebine, ki se ne sme predpomniti, na primer: vsebina facebooka.
refresh-ims
Squid se obrne na strežnik, da preveri, ali je predmet najnovejši. Če je, bo dostavil predpomnilnik
store-stale
Lignji bodo shranili vse te odgovore, tudi če nimajo roka veljavnosti, je to zelo nepraktično, saj jih običajno ni mogoče ponovno uporabiti. Če se odločite, da jo omogočite, morate prijaviti max-stale = NN
max-stale=NN
Če ste omogočili zgoraj navedeno, morate navesti najdaljšo življenjsko dobo za ta odziv ali faktor. Squid ne dostavi predmetov tega sloga, vendar ga lahko potrdi z virom
Tu je tabela, kako deluje stanje svežega "SVEŽEGA" glede na vrednosti, o katerih smo razpravljali:
- SVEŽE, če poteče> zdaj, sicer STALE
- STALE, če je starost> največ
- SVEŽE, če je faktor lm <odstotek, sicer STALE
- SVEŽE, če starost <min drugače KRAJA
Tu je primer konfiguracije za določeno podjetje z veliko prostora na disku, dobro opremo in dobro pasovno širino
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
Zdaj predpomnilnik ni le na trdem disku, lahko tudi predpomnilnik ram pomnilnika, ta vrednost je za vsak postopek lignjev, zato jo morate upoštevati pri uporabi preusmerjevalnikov, kot so squidGuard
maximum_object_size_in_memory 1024 KB
Največja velikost predmeta v pomnilniku, ki ga bodo lignji shranili v RAM. Lahko tudi prijavite minimum.
memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF
Kot lahko vidite, je ena politika za zamenjavo predpomnilnika v pomnilniku RAM, druga pa na trdem disku. Obstajata 2 pravilnika GDSF in LFUDA. Prvi želi izboljšati odstotek zadetkov predpomnilnika, pri čemer ima na voljo veliko majhnih predmetov, drugi pa nasprotno, predmete hrani v predpomnilniku ne glede na njihovo velikost.
Vprašanje, za katerega si mislim, da me trenutno zastavljate, je, kakšno rabo uporabljam? No, če menite, da v vašem okolju naredijo veliko poizvedb in malo prenosov uporablja GDSF, če nasprotno opravijo veliko prenosov in malo poizvedb LFUDA. Če priporočam LFUDA, ko boste to storili, ne vem, predpomnilnik v 1TB diska je bolj učinkovit.
maximum_object_size 4 MB
Največja velikost predmeta, ki ga je treba shraniti
cache_dir aufs /media/proxy249/cache 100 16 256
Kje bo shranjen predpomnilnik, tukaj je pozornost pomembno, če uporabljate ufs, aufs ali diskd, vsi trije delujejo bolj ali manj enako, razlika je v tem, da aufs in diskd delujejo z ločenimi procesi za izvajanje I / O operacij na trdem disku in izogibajte se, da se med temi postopki lignji obesijo, poleg tega lahko na disku določite število niti, ki jih boste imeli za to nalogo. Aufs priporočam, če imate dobro ekipo.
Velikost 100 (megabajtov), lahko postavite 100000, je skoraj 100 GB, odvisno od vaše razpoložljivosti. 16 je število map in 256 podmap. Lahko se igrate z obema vrednostma, odvisno od tega, kako hitri so vaši diski in koliko virov imate.
cache_swap_low 90
cache_swap_high 95
Te možnosti so vrednosti nadomestitve predmeta, to je najmanjša in največja vrednost kot vodni žig glede na lignje, kjer so te številke v odstotkih (%), v zelo majhnem predpomnilniku pa bi bilo 5%, kot je ta, recimo 300 predmetov na sekundo , vendar bi v zelo velikih predpomnilnikih govorili o tisočih MB
No, tam vas pustim, to za zdaj, komentirajte Upoštevajte tudi tiste, ki so mi povedali, da ne morejo predpomniti in filtrirati strani https (SSL) v squid 3.5 ali novejši različici, kmalu vam jih predstavim, spremljajte ta blog.
Odlično dopolnilo prvemu delu!
O lignji je veliko literature, vendar prehod na točko v najbolj praktičnih možnostih z njihovimi razlagami in možnimi scenariji resnične uporabe niso vedno na dosegu roke!
Kot vedno se veselim tretjega dela!
Hvala za vaš komentar. Pravilno je, jedrnato pojasnilo vseh ustreznih elementov in nastavitev najboljše prakse. Vendar sem vedno pozoren na vaše komentarje in lastne izkušnje.
Pozdravljeni, imam težave s posodobitvami sistema Windows in protivirusnimi programi. V svoji ustanovi imam približno 120 kosov. Bi mi lahko predstavili kako izboljšati to situacijo. Hvala za pomoč in čestitke za članek.
Pozdravljeni, hvala za sodelovanje .. no, če vam lahko pomagam, vendar dobro razložite, v čem je težava, posodobitev ne morete prenesti? Ali ste proxy vnesli v internetne možnosti in enako v možnosti proxy v brskalniku? Ali ste preverili vrata? Ali želite te posodobitve shraniti v predpomnilnik?
Kar potrebujem, je, da vsakič, ko računalnik prenese posodobitev sistema Windows ali protivirusne programske opreme, ostane v predpomnilniku približno en mesec, na ta način bi rad prihranil pasovno širino, saj vsako jutro vsakič vsi računalniki začnejo prenašati iste posodobitve, vsaka pa se povezava nasiči.
Hvala za vašo pomoč.
Strežnik s Squid bo to storil, saj gre za preproste nešifrirane http prenose. Drugi rešitvi za predpomnilnik sta WSUS in Altiris, običajno v podjetjih.
Hvala Mario, imel bom v mislih.
ok pripravljen, razumem, preveri to povezavo. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. Če želite antivirus shraniti v predpomnilnik, morate vedeti, od kod se nalagajo posodobitve in pod katero razširitvijo (primer .exe), ter ga predpomniti ...
Hvala za vašo pomoč.
Dobro jutro prijatelji, bi me lahko podprli z mojim primerom. ker imam squid 2.7 .STABLE9 na debian 6 in imam vse konfigurirano in pri namestitvi v 10 pc okolju dobim normalno pošto, težava je v tem, ko ga namestim za 90 pc, traja le nekaj sekund in od tam vsi ostanejo brez interneta. Bi me lahko podprli?
Odlična razlaga, osnovna, a zelo jasna in natančna. Osebno najboljša razlaga, ki sem jo lahko prebral.
Imam vprašanje, ali je mogoče predpomniti aplikacije za Android, kot sta apk in xapk?
In kakšen bi bil pravilen način konfiguriranja dinamičnega predpomnilnika ne glede na izvor datotek?
Uporabljam pfSense 2.4.5.