Kalmari-välimuisti - osa 2

Squid ei ole vain välityspalvelin ja välimuistipalvelu, se voi tehdä paljon enemmän: hallita acl (pääsyluetteloita), suodattaa sisältöä, se voi jopa tehdä ssl-suodatuksen jopa läpinäkyvässä tilassa (välityspalvelimenetelmä - ilman tarvetta määrittää välityspalvelinasetuksissa) heidän selaimistaan, se on kuin ihminen keskellä, kukaan ei tiedä, että se on siellä). Joten näen yleisesti, kuinka tämän sovelluksen koko potentiaali hukkuu, koska en tiedä kuinka konfiguroida kutakin sen osaa.

Nyt mielenkiintoinen asia, jota kalmari tekee, on välimuisti (mielestäni). Kerro minulle miksi välimuisti? Syy on yksinkertainen, hallitse nopeuden käyttöä paremmin ja kaistanleveys on tärkeintä. Ajattele huolellisesti, 1000 ihmistä yrityksessäsi joka viides minuutti, yleiset sivut, Google, Hotmail, Gmail jne. ... jotta lataat kuvia, bannereita, mainoksia, html-sisältöä uudestaan ​​ja uudestaan, kaikki nämä ovat staattisia asioita, ei ne muuttuvat niin usein, parempi, että ne tallennetaan lähiverkkoon, ja toimitat kopion, jota pidät äskettäisenä harkitsemissasi kokoonpanoissa.

Kuinka tehdä? Yksinkertainen seuraavalla lauseella:

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

Kuten aina sanon, älä usko kaikkea, joten kehotan sinua lukemaan virallisesta lähteestä. Suosittelen lukemaan tämän päätöksen käsikirjan TÄÄLTÄ.

refresh_pattern - lauseke on aina tagimme uusien parametrien lisäämiseksi välimuistiin.

Tärkeää, välimuistiluetteloiden on oltava peräkkäisiä, koska kun se vastaa ensimmäistä objektia vastaavaa, se ei jatka muiden sääntöjen lukemista

Säännölliset lausekkeet ovat kirjainkokoriippuvaisia, joten flv ei ole sama asia kuin FLV, mutta voit halutessasi välttää tämän käyttämällä -i- valitsinta . Tällöin se näyttäisi tältä: refresh_pattern -i

'Min': Tämä on aika (minuuteissa), jonka objektia pidetään "tuoreena", jos sillä ei ole nimenomaista "vanhentunut"-tagia. Squid suosittelee oletusarvoisesti arvoa 0, koska jotkin dynaamiset sovellukset saattavat käyttäytyä oudosti. Tämän arvon tulisi olla luku, jota pidät hyödyllisenä ja tehokkaana välimuistiin tallennettaville elementeille. Esimerkiksi 1440 minuuttia (yksi päivä) vaikuttaa minusta hyvältä JPG-kuville; verkkosivuston julkaisun kuvat eivät vaihdu 5 minuutin välein.

'Prosentti' on objektin iän prosenttiosuus (viimeisimmästä muokkauksesta lähtien), jota pidetään "uutena" tai "tuoreena". Jos esimerkiksi lataat verkkosivua jatkuvasti uudelleen tai päivität sitä nähdäksesi uusimmat muutokset, Squid saattaa olettaa, että jos objekti on viettänyt esimerkiksi 50 % ajasta minimin ja maksimin arvojen välillä , se lataa objektin uudelleen internetistä ja antaa sinulle uuden kopion.

'Max' on 'Min'- arvon yläpuolella tai yhtä suuri raja, jonka verran objektia pidetään "uusiaikana" tai tuoreena. Oletetaan, että käyttäjä on katsonut sivulla olevaa kuvaa vain kerran; kyseinen objekti on jo saavuttanut vähimmäisaikansa , mutta ei enimmäisaikaansa . Joten kun sitä katsellaan uudelleen, välimuistissa oleva kopio toimitetaan.

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

Nämä vaihtoehdot tehtiin enimmäkseen sivuuttamaan ennalta määritetyt käyttäytymiset kielillä ja protokollissa välimuistin tehokkaan käytön takaamiseksi.

override-expire

Se noudattaa objektin vähimmäisaikaa, vaikka palvelin lähettäisi lyhyemmän vanhentumisajan (esimerkiksi otsikko tai välimuistin hallinta: max-age). Jos teemme tämän, näkyviin tulee "varoitus", jossa sanotaan esimerkiksi "RIKKAA HTTP-standardia", mutta se on vain varoitus, jonka voimme jättää huomiotta. Jos palvelimen lähettämä aika on pidempi, kalmari vie palvelimen ajan (vanhenemisen)

override-lastmod

Vahvistaa kohteen vähimmäisaikaa, vaikka sitä muutettaisiin äskettäin.

reload-into-ims

Lyhyt selitys on, että se estää sitä, että kun painamme päivityspainiketta tai teemme välimuistipyynnön, kalmari toimittaa välimuistin, jos sitä ei ole "muokattu" ja / tai jos sivulla ei ole "otsikoita".

ignore-reload

Ohita käyttäjien toiminta painamalla uudelleen tai päivitä sivupainiketta

ignore-no-store

Ohita otsikoissa olevat säännöt, jotka eivät sisällä välimuistia, esimerkiksi videoita

ignore-private

Ohita yksityisen sisällön otsikoissa kaikki säännöt, joita ei pitäisi tallentaa välimuistiin, esimerkiksi: facebook-sisältö.

refresh-ims

Kalmari ottaa yhteyttä palvelimeen varmistaakseen, että objekti on uusin. Jos se on, se toimittaa välimuistin

store-stale

Kalmari tallentaa kaikki vastaukset, vaikka heillä ei olisikaan viimeistä käyttöpäivää, tämä on hyvin epäkäytännöllistä, koska niitä ei yleensä voida käyttää uudelleen. Jos päätät ottaa sen käyttöön, sinun on ilmoitettava max-stale = NN

max-stale=NN

Jos otit yllä mainitun käyttöön, sinun on ilmoitettava kyseisen vasteen tai tekijän enimmäiskäyttöikä. Squid ei toimita tämän tyylisiä objekteja, mutta voi vahvistaa sen lähteellä

Tässä on taulukko "TUORE" -tilan toiminnasta keskustelemiemme arvojen mukaisesti:

  • TUORE, jos vanhenee> nyt, muuten STALE
  • STALE, jos ikä> max
  • TUORE, jos lm-kerroin <prosenttia, muuten PYĂ–RĂ„
  • TUORE, jos ikä <min muuten STALE

Tässä on esimerkki tietyn yrityksen kokoonpanosta, jossa on paljon levytilaa, hyvät laitteet ja hyvä kaistanleveys

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

Välimuistia ei nyt käytetä vain kiintolevyllä; voimme tallentaa sen myös RAM-muistiin. Tämä arvo on Squid-prosessikohtainen, joten se kannattaa ottaa huomioon käytettäessä uudelleenohjaajia, kuten SquidGuardia.

maximum_object_size_in_memory 1024 KB

Kalmari tallentaa muistissa olevan objektin enimmäiskoon RAM-muistiin. Voit myös ilmoittaa vähimmäismäärän.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Kuten näette, yksi on käytäntö välimuistin vaihtamiseksi RAM-muistissa ja toinen kiintolevyllä. GDSF- ja LFUDA-käytäntöjä on 2. Ensimmäinen pyrkii parantamaan välimuistin osumien prosenttiosuutta, kun käsillä on monia pieniä esineitä, toinen pyrkii päinvastoin, se pitää objektit välimuistissa niiden koosta riippumatta.

Kysymys, jonka kuvittelen kysyvän minulta tällä hetkellä, on, mitä käyttöä käytän? No, jos ajattelet, että ympäristössäsi he tekevät paljon kyselyjä ja harvat lataukset käyttävät GDSF: ää, jos päinvastoin he tekevät paljon latauksia ja harvat LFUDA-kyselyt. Jos suosittelen LFUDAa, kun aiot tehdä, en tiedä, välimuisti 1 Tt levylle, se on tehokkaampaa.

maximum_object_size 4 MB

Suurin koko, jonka objekti voidaan joutua tallentamaan

cache_dir aufs /media/proxy249/cache 100 16 256

Mihin välimuisti tallennetaan, huomio tässä on tärkeää, jos käytät uf-, auf- tai diskd-tiedostoja, kaikki 3 toimivat suunnilleen samalla tavalla, ero on siinä, että aufs ja diskd toimivat erillisten prosessien kanssa I / O-toimintojen suorittamiseksi kiintolevyllä ja Vältä, että kalmari-prosessit jumittuvat näiden toimintojen aikana. Lisäksi diskd voit määrittää ketjujen määrän, joita sinulla on tähän tehtävään. Suosittelen aufsia, jos sinulla on hyvä tiimi.

Koko 100 (megatavua), voit laittaa 100000 on lähes 100 Gt riippuu saatavuudesta. 16 on kansioiden lukumäärä ja 256 alikansioiden määrä. Voit pelata molemmilla arvoilla riippuen siitä, kuinka nopeasti levyt ovat ja kuinka paljon resursseja sinulla on.


cache_swap_low 90
cache_swap_high 95

Nämä vaihtoehdot ovat objektien korvausarvoja, se on pienin ja suurin arvo vesileimana kalmarin mukaan, jossa nämä luvut ovat prosentteina (%), ja hyvin pienessä välimuistissa 5% tällä hetkellä olisi esimerkiksi 300 objektia sekunnissa , mutta erittäin suurissa välimuistissa puhumme tuhansista megatavuista

No, siinä kaikki tältä erää. Kommentoikaa ja ottakaa huomioon myös ne, jotka kertoivat minulle, etteivät he voineet tallentaa välimuistiin ja suodattaa HTTPS (SSL) -sivuja Squid 3.5:ssä tai uudemmissa; kerron teille siitä pian, joten pysykää kuulolla tästä blogista.


Lisää ensisijaiseksi lähteeksi Googlessa