Squid pole mitte ainult puhverserveri- ja vahemäluteenus, vaid saab teha palju enamat: hallata acl-sid (juurdepääsunimekirju), filtreerida sisu, isegi ssl-i filtreerimist isegi läbipaistvas režiimis (puhverserveri meetod - ilma puhverserveri seadetes konfigureerimata) nende brauseritest on see nagu mees keskel, keegi ei tea, et see seal on). Nii näen sageli, kuidas selle rakenduse kogu potentsiaal raisatakse, kui ei tea, kuidas iga selle osa konfigureerida.
Nüüd on kalmaari huvitav asi vahemälu (minu arvates). Te ütlete mulle, miks vahemälu? Põhjus on lihtne, teie kiiruse kasutamist paremini hallata ja peamine on ribalaius. Mõelge hoolikalt, 1000 inimest teie ettevõttes konsulteerib iga 5 minuti tagant, tavalisi lehti, Google'i, Hotmaili, Gmaili jne ..., et saaksite ikka ja jälle pilte, bännereid, reklaame, HTML-sisu alla laadida, kõik need on staatilised asjad, ei Neid muudetakse nii sageli, parem, kui soovite, et need salvestataks teie kohalikku võrku ja edastaksite koopia, mida pidasite hiljutiseks teie valitud konfiguratsioonides.
Kuidas seda teha? Lihtne järgmise lausega:
refresh_pattern [-i] regex min percent max [options]
Nagu ma alati ütlen, ärge uskuge kõike, seega soovitan teil lugeda ametlikust allikast. Soovitan selle otsuse kohta lugeda juhendit SIIT.
refresh_pattern lause on alati meie silt uute parameetrite vahemällu lisamiseks.
Oluline on, et teie vahemäluloendid peavad olema järjestikused, sest kui see ühtib esimese objektiga vastava loendiga, ei jätkata teiste reeglite lugemist.
Regulaaravaldised on tõstutundlikud, seega flv ei ole sama mis FLV, aga seda saab soovi korral vältida, kasutades valikut -i . Siis näeks see välja selline: refresh_pattern -i
„Min”: See on aeg (minutites), mille jooksul objekti peetakse „värskeks”, kui sellel pole selgesõnalist „aegunud” silti. Vaikimisi soovitab Squid väärtust 0, kuna mõned dünaamilised rakendused võivad käituda kummaliselt. See väärtus peaks tegelikult olema number, mida peate vahemällu salvestatavate elementide jaoks kasulikuks ja efektiivseks. Näiteks 1440 minutit (üks päev) tundub mulle JPG-de puhul piisav; veebisaidi postituse pildid ei muutu iga 5 minuti järel.
„Protsent” on objekti vanuse protsent (alates viimasest muutmisest), mida peetakse „hiljutise” või „värske” olekuks. Näiteks kui laadite veebilehte pidevalt uuesti või värskendate, et näha viimaseid muudatusi, võib Squid arvestada, et kui objekti kestus on jäänud näiteks 50% miinimum- ja maksimumväärtuse vahele , laadib see objekti uuesti internetist alla ja annab teile värske koopia.
„Max” on piirang, mis on „min” -iga võrdne või suurem kui selle kestus, mille jooksul objekti peetakse „värskeks”. Oletame, et kasutaja on lehel olevat pilti vaadanud ainult üks kord; see objekt on juba saavutanud oma minimaalse aja , kuid mitte maksimaalse aja . Seega, kui seda uuesti vaadatakse, edastatakse vahemällu salvestatud koopia.
Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale
Need võimalused tehti enamasti selleks, et eirata keeltes ja protokollides eelnevalt kehtestatud käitumist, et tagada vahemälu tõhus kasutamine.
override-expire
See rakendab objekti minimaalset aega isegi siis, kui server saatis lühema aegumisaega (näiteks päis või vahemälu-juhtimine: max-age). Kui me seda teeme, ilmub "hoiatus", mis ütleb selliseid asju "RIKKUB HTTP-standardit", kuid see on lihtsalt hoiatus, mida me võime ignoreerida. Kui serveri saadetud aeg on pikem, võtab kalmaar serveri aja (aegumise)
override-lastmod
Tugevdab üksuse minimaalset aega, isegi kui seda üksust hiljuti muudeti.
reload-into-ims
Lühike selgitus on see, et see takistab seda, et kui me vajutame värskendusnuppu või teeme vahemälu puudumise taotluse, annab kalmaar vahemälu, kui seda pole pärast seda muudetud ja / või kui lehel pole päiseid.
ignore-reload
Eirake kasutajate toiminguid lehe uuesti laadimise või värskendamise nupu vajutamiseks
ignore-no-store
Eirake päistes reegleid, et mitte vahemällu salvestada, näiteks videoid
ignore-private
Eirake privaatse sisu päistes reegleid, mida ei tohiks vahemällu salvestada, näiteks: facebooki sisu.
refresh-ims
Kalmaar võtab ühendust serveriga, et veenduda, kas objekt on uusim. Kui see on, edastab see vahemälu
store-stale
Kalmaar salvestab kõik need vastused, isegi kui neil pole aegumiskuupäeva, on see väga ebapraktiline, kuna neid ei saa tavaliselt uuesti kasutada. Kui otsustate selle lubada, peate deklareerima max-stale = NN
max-stale=NN
Kui lubasite ülaltoodu, peate deklareerima selle vastuse või teguri maksimaalse eluea. Kalmaar ei tooda seda stiili objekte, kuid saab seda kinnitada allikaga
Siin on tabel selle kohta, kuidas olek "VÄRSKE" töötab vastavalt meie arutletud väärtustele:
- VÄRSKE, kui aegub> praegu, muidu STALE
- STALE, kui vanus> max
- VÄRSKE, kui lm-tegur <protsenti, muidu MÜÜA
- VÄRSKE, kui vanus <min muidu HÄSTI
Siin on näide konkreetse ettevõtte konfiguratsioonist, kus on palju kettaruumi, head seadmed ja hea ribalaius
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
Nüüd ei toimu vahemällu salvestamine ainult kõvakettal; me saame vahemällu salvestada ka muutmälus (RAM). See väärtus on iga Squid protsessi kohta eraldi, seega peaksite seda ümbersuunajate (nt SquidGuard) kasutamisel arvesse võtma.
maximum_object_size_in_memory 1024 KB
Kalmaari mällu salvestatava objekti maksimaalne suurus RAM-is. Samuti saate deklareerida miinimumi.
memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF
Nagu näete, on üks põhimõte vahemälu asendamiseks RAM-mälus ja teine kõvakettal. GDSF ja LFUDA on kaks reeglit. Esimene püüab parandada vahemälu tabamuste protsenti, kui käes on palju väikeseid esemeid, teine otsib vastupidist, see hoiab objekte vahemälus, olenemata nende suurusest.
Küsimus, mida ma kujutan ette, et te mulle praegu küsite, on see, mida ma kasutan? Noh, kui arvate, et nad teevad oma keskkonnas palju päringuid ja vähesed allalaadimised kasutavad GDSF-i, kui nad vastupidi teevad palju allalaadimisi ja vähe LFUDA päringuid. Kui ma soovitan LFUDA-d, kui te seda teete, siis ma ei tea, vahemälu 1 TB kettal, siis on see tõhusam.
maximum_object_size 4 MB
Maksimaalne suurus, mida objekt võib salvestada
cache_dir aufs /media/proxy249/cache 100 16 256
Kui vahemälu salvestatakse, tuleb siin tähelepanu pöörata sellele, et kui kasutate uf-e, auf-i või diskd-d, töötavad kõik 3 enam-vähem sama, erinevus seisneb selles, et auf-failid ja diskd töötavad eraldi protsessidega, et teha sisend- / väljundoperatsioone kõvakettal ja vältige, et kalmaariprotsessid nende toimingute ajal ripuksid. Lisaks saate diskd-l määrata selle lõime jaoks vajalike niitide arvu. Soovitan aufsi, kui teil on hea meeskond.
Suurus 100 (megs), võite panna 100000, on peaaegu 100 GB, sõltub teie kättesaadavusest. 16 on kaustade arv ja 256 on alamkaustade arv. Mängida saab mõlema väärtusega, olenevalt sellest, kui kiiresti plaadid on ja kui palju ressursse teil on.
cache_swap_low 90
cache_swap_high 95
Need valikud on objekti asendusväärtused, see on kalmaari järgi vesimärgina miinimum- ja maksimumväärtus, kus need arvud on protsentides (%), ja väga väikeses vahemälus oleks praegu 5% selline, näiteks 300 objekte sekundis, kuid väga suurtes vahemäludes räägiksime tuhandetest MB-dest
Noh, see on praegu kõik. Kommenteerige ja arvestage ka nendega, kes ütlesid mulle, et nad ei saa Squid 3.5-s või uuemas versioonis HTTPS (SSL) lehti vahemällu salvestada ja filtreerida; ma toon selle teieni varsti, seega püsige lainel sellel blogil.