Kalmarų talpykla - 2 dalis

„Squid“ yra ne tik tarpinio serverio ir talpyklos paslauga, ji gali padaryti daug daugiau: valdyti acl (prieigos sąraÅ¡us), filtruoti turinį, jis netgi gali atlikti ssl filtravimą net skaidriu reÅŸimu (tarpinio serverio metodas - nereikia konfigÅ«ruoti pagalbinio serverio nustatymuose iÅ¡ jų narÅ¡yklių tai tarsi ÅŸmogus per vidurį, niekas neÅŸino, kad ten yra). Taigi daÅŸnai matau, kaip iÅ¡eikvojamas visas Å¡ios programos potencialas, neÅŸinant, kaip sukonfigÅ«ruoti kiekvieną jos dalį.

Dabar įdomus dalykas, kurį daro kalmarai, yra talpykla (mano nuomone). JÅ«s man pasakysite, kodėl talpykla? PrieÅŸastis yra paprasta, geriau valdykite savo greičio ir pralaidumo naudojimą, tai yra pagrindinis dalykas. Gerai pagalvokite, 1000 ÅŸmonių jÅ«sų įmonėje kas 5 minutes konsultuojasi, įprastus puslapius, „Google“, „Hotmail“, „Gmail“ ir kt., Kad vėl ir vėl atsisiųstumėte vaizdus, ​​reklamjuostes, reklamą, HTML turinį, visa tai yra statiÅ¡ka dalykai, ne. Jie keičiasi taip daÅŸnai, geriau juos laikyti savo vietiniame tinkle ir jÅ«s pristatysite kopiją, kurią laikote naujausia pagal jÅ«sų svarstytas konfigÅ«racijas.

Kaip tai padaryti? Paprasta su šiuo sakiniu:

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

Kaip visada sakau, netikėkite viskuo, todėl raginu skaityti oficialius šaltinius. Rekomenduoju perskaityti šio nutarimo vadovą ČIA.

„refresh_pattern“ teiginys visada bus mÅ«sų ÅŸymė, skirta naujiems parametrams į talpyklą pridėti.

Svarbu, kad jūsų talpyklos sąrašai turi būti nuoseklūs, nes kai jis atitiks pirmąjį objektą atitinkantį sąrašą, jis nebeskaitys kitų jūsų taisyklių.

ReguliarÅ«s reiÅ¡kiniai yra didÅŸiųjų ir maşųjų raidÅŸių jautrios, todėl flv nėra tas pats, kas FLV, bet galite to iÅ¡vengti, jei norite, naudodami parametrą -i . Tada jis atrodytų taip: refresh_pattern -i

„Min“: tai laikas (minutėmis), kai objektas bus laikomas „nauju“, jei jis neturi aiÅ¡kios ÅŸymės „pasibaigęs“. Pagal numatytuosius nustatymus „Squid“ rekomenduoja 0, nes kai kurios dinaminės programos gali elgtis keistai. Å i reikÅ¡mė turėtų bÅ«ti skaičius, kurį laikote naudingu ir efektyviu elementams, kuriuos norite kaupti talpykloje. PavyzdÅŸiui, 1440 minučių (viena diena) man atrodo tinkama JPG formatui; ​​tai ne tas pats, kas svetainės įraÅ¡o vaizdai keičiasi kas 5 minutes.

„Procentas“ – tai objekto amÅŸiaus procentinė dalis (nuo paskutinio pakeitimo), kuri bus laikoma „nauja“ arba „švieÅŸia“. PavyzdÅŸiui, jei nuolat perkraunate arba atnaujinate tinklalapį, kad pamatytumėte naujausius pakeitimus, „Squid“ gali manyti, kad jei objektas pasiekė, tarkime, 50 % laiko tarp minimalios ir maksimalios vertės , jis vėl atsisiųs tą objektą iÅ¡ interneto ir pateiks jums naują kopiją.

„Max“ yra riba, virÅ¡ijanti arba lygi „Min“, kiek laiko objektas laikomas „nauju arba gaiviu“. Tarkime, kad paveikslėlį puslapyje vartotojas perÅŸiÅ«rėjo tik vieną kartą; tas objektas jau pasiekė savo minimalų laiką , bet ne maksimalų laiką . Taigi, kai jis bus perÅŸiÅ«rimas dar kartą, bus pateikta talpykloje saugoma kopija.

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

Å ios galimybės daÅŸniausiai buvo skirtos ignoruoti iÅ¡ anksto nustatytą elgesį kalbomis ir protokolais, siekiant garantuoti efektyvų talpyklos naudojimą.

override-expire

Tai uÅŸtikrina minimalų objekto laiką, net jei serveris iÅ¡siuntė trumpesnį galiojimo laiką (pvz., AntraÅ¡tės arba „Cache-Control“: max-age). Jei tai padarysime, pasirodys „perspėjimas“, sakantis tokius dalykus kaip „PaÅŸeidÅŸia HTTP standartą“, bet tai tik įspėjimai, kurių galime nepaisyti. Jei laikas, kurį serveris siunčia, yra ilgesnis, kalmarai uÅŸtruks serverio laiką (galiojimo laiką)

override-lastmod

Sustiprina minimalų daikto laiką, net jei tas elementas buvo neseniai modifikuotas.

reload-into-ims

Trumpas paaiÅ¡kinimas yra tas, kad jis neleidÅŸia, kad paspaudus atnaujinimo mygtuką arba pateikus uÅŸklausą be talpyklos, kalmarai pateiks talpyklą, jei ji nebuvo „modifikuota“ ir (arba) jei puslapyje nebus „antraščių“.

ignore-reload

Nepaisykite naudotojų veiksmų, norėdami paspausti mygtuką iš naujo arba atnaujinti

ignore-no-store

Nepaisykite jokių antraštėse esančių taisyklių, kad nebūtų talpinama, pvz., Vaizdo įrašai

ignore-private

Nepaisykite jokių taisyklių privataus turinio antraÅ¡tėse, kurių nereikėtų laikyti talpykloje, pavyzdÅŸiui: „facebook“ turinys.

refresh-ims

Kalmarai susisiekia su serveriu, norėdami įsitikinti, ar objektas yra naujausias. Jei taip, tai pateiks talpyklą

store-stale

Kalmarai išsaugos visus tuos atsakymus, net jei jie neturi galiojimo pabaigos datos, tai yra labai nepraktiška, nes paprastai jų negalima pakartotinai naudoti. Jei nuspręsite jį įjungti, turite deklaruoti max-stale = NN

max-stale=NN

Jei įgalinote tai, kas išdėstyta pirmiau, turite deklaruoti maksimalų to atsako ar veiksnio tarnavimo laiką. Kalmarai nepateikia šio stiliaus objektų, tačiau gali patvirtinti juos naudodami šaltinį

Čia pateikiama lentelė, kaip veikia Å¡vieÅŸia „ŠVIEÅœI“ bÅ«sena pagal mÅ«sų aptartas vertybes:

  • Å VEIKAS, jei pasibaigs galiojimo laikas> dabar, kitu atveju PABAIGA
  • STALE, jei amÅŸius> maks
  • Å VIEÅœI, jei lm koeficientas <procentų, dar PABAIGAS
  • Å VIEÅœI, jei amÅŸius <min. KITAS PABAIGAS

Čia pateikiamas konkrečios įmonės, kurioje yra daug vietos diske, gera įranga ir didelis pralaidumas, konfigūracijos pavyzdys

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

Dabar kaupimas talpykloje atliekamas ne tik standÅŸiajame diske; galime kaupti ir RAM atmintyje. Å i vertė priklauso kiekvienam „Squid“ procesui, todėl turėtumėte į ją atsiÅŸvelgti naudodami peradresavimo priemones, tokias kaip „SquidGuard“.

maximum_object_size_in_memory 1024 KB

Maksimalus atmintyje esančio objekto, kurį kalmarai išsaugos RAM, dydis. Taip pat galite deklaruoti minimumą.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Kaip matote, viena yra talpyklos pakeitimo RAM atmintyje politika, kita - kietajame diske. Yra 2 GDSF ir LFUDA strategijos. Pirmasis siekia pagerinti talpyklos paspaudimų procentą, turėdamas daug maşų objektų, antrasis siekia prieÅ¡ingai, objektus laiko talpykloje, neatsiÅŸvelgiant į jų dydį.

Ä®sivaizduoju, kad Å¡iuo metu manęs klausiate, klausimas, ką aÅ¡ naudoju? Na, jei manote, kad jÅ«sų aplinkoje jie atlieka daugybę uÅŸklausų ir maÅŸai atsisiuntimų naudoja GDSF, prieÅ¡ingai, jie atsisiunčia daug ir maÅŸai LFUDA uÅŸklausų . Jei rekomenduoju LFUDA, kai ketinate tai padaryti, aÅ¡ neÅŸinau, talpyklą 1 TB diske, tai yra efektyviau.

maximum_object_size 4 MB

Maksimalus objekto dydis gali būti saugomas

cache_dir aufs /media/proxy249/cache 100 16 256

Kur bus saugoma talpykla, čia atkreipkite dėmesį, svarbu, jei naudojate uf, aufs ar diskd, visi 3 veikia daugmaÅŸ vienodai, skirtumas tas, kad auf ir diskas dirba su atskirais procesais, kad atliktų įvesties / iÅ¡vesties operacijas kietajame diske. diską ir venkite, kad kalmarų procesai pakibtų atliekant Å¡ias operacijas. Be to, diskd galite nurodyti siÅ«lų, kurias turėsite atlikti Å¡ią uÅŸduotį, skaičių. AÅ¡ rekomenduoju aufs, jei turite gerą komandą.

100 dydis (megabaitai), galite įdėti 100000 100, yra beveik 16 GB, priklauso nuo jÅ«sų prieinamumo. 256 yra aplankų skaičius, o XNUMX - antrinių aplankų skaičius. Galite ÅŸaisti naudodamiesi abiem vertybėmis, priklausomai nuo to, kaip greitai veikia jÅ«sų diskai ir kiek turite iÅ¡teklių.


cache_swap_low 90
cache_swap_high 95

Å ios parinktys yra objekto pakeitimo vertės, tai yra maÅŸiausia ir didÅŸiausia vertė kaip vandens ÅŸenklas pagal kalmarus, kur Å¡ie skaičiai yra procentais (%), o labai maÅŸoje talpykloje dabar tokie 5% bÅ«tų, tarkime, 300 objektų per sekundę, tačiau labai didelėse talpyklose kalbėtume apie tÅ«kstančius MB

Na, kol kas tiek. Komentuokite ir atsiÅŸvelkite į tuos, kurie man sakė, kad jie negali kaupti talpykloje ir filtruoti HTTPS (SSL) puslapių „Squid 3.5“ ar naujesnėse versijose; netrukus jums tai parodysiu, tad sekite naujienas Å¡iame tinklaraÅ¡tyje.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje