Blæksprutte-cache - del 2

Blæksprutte er ikke kun en proxy- og cachetjeneste, den kan gøre meget mere: administrer ACL (adgangslister), filterindhold, den kan endda lave ssl-filtrering selv i gennemsigtig tilstand (proxymetode - uden at skulle konfigurere i proxyindstillinger fra deres browsere er det som en mand i midten, ingen ved, at det er der). Så jeg ser ofte, hvordan det fulde potentiale i denne applikation spildes ved ikke at vide, hvordan man konfigurerer hver af dens dele.

Nu er det interessante, som blæksprutte gør, cachen (efter min mening). Du vil fortælle mig, hvorfor cache? Årsagen er enkel, bedre styre brugen af ​​din hastighed og båndbredde, det er det vigtigste. Tænk nøje, 1000 mennesker i din virksomhed konsulterer hvert 5. minut, almindelige sider, Google, Hotmail, Gmail osv ... så du vil downloade billeder, bannere, reklamer, html-indhold igen og igen, alle disse er statiske ting, nej De ændres så ofte, bedre at have dem gemt i dit lokale netværk, og du leverer en kopi, som du anser for nyligt inden for de konfigurationer, du overvejede.

Hvordan gør man det? Enkel med følgende sætning:

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

Som jeg altid siger, tro ikke på alt, så jeg opfordrer dig til at læse fra den officielle kilde. Jeg anbefaler, at du læser manualen for denne sætning HER

Dømme opdater_mønster Det vil altid være vores etiket at tilføje nye parametre til cachen.

Vigtigt, dine cachelister skal være sekventielle, for når den matcher den første, der matcher objektet, fortsætter den ikke med at læse dine andre regler

Regulære udtryk er store og små bogstaver, derfor er flv ikke det samme som FLV, men du kan undgå dette, hvis du ønsker det ved at bruge indstillingen -i . Så ville det se sådan ud refresh_pattern -i

'Min': Det er det tidspunkt (minutter), hvor et objekt vil blive betragtet som "nyligt eller nyt", og hvis det ikke har en eksplicit etiket "udløbet". Som standard anbefaler blæksprutter, at det er 0 af grunde til, at nogle dynamiske applikationer kan opføre sig underligt, ren bla bla bla, virkelig skal denne værdi være et tal, som du anser for nyttigt og effektivt til de elementer, du vil cache, eksempel: jpg, 1440 minutter (om dagen) virker fint for mig, det er ikke som om billederne af et indlæg skifter hvert 5. minut på en side.

'Procent' Det er procentdelen af ​​et objekts alder (siden den sidste ændring), der vil blive betragtet som "nyligt eller frisk". Lad mig forklare, måske laver en konstant genindlæsning eller opdatering for at se de sidste ændringer, der blev foretaget på en webside, kunne blæksprutte overveje, om den allerede har fx 50% af tiden afsluttet mellem minut y max, download det objekt igen fra internettet og giv dig en ny kopi.

'Max' er grænsen over eller lig med 'Min' hvor længe et objekt betragtes som "nyt eller nyt", antag at et billede af en side kun blev konsulteret en gang af en bruger, det objekt har allerede nået sin tid minut, men ikke max, så når den bliver spurgt igen, leveres en cache-kopi.

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

Disse muligheder blev hovedsagelig foretaget for at ignorere forudbestemte adfærd på sprog og protokoller for at garantere en effektiv brug af cachen.

override-expire

Det håndhæver minimumobjektet for et objekt, selvom serveren sendte en kortere timeout (f.eks. Ting som header eller Cache-Control: max-age). Hvis vi gør dette, vises en "advarsel", der siger ting som denne "VIRKLER HTTP-standarden", men det er bare advarsler, som vi kan ignorere. Hvis den tid en server sender er længere, tager blæksprutte nu serverens tid (udløb)

override-lastmod

Forstærker den minimale tid for en vare, selvom den for nylig blev ændret.

reload-into-ims

Den korte forklaring er, at det forhindrer, at når vi trykker på opdateringsknappen eller fremsætter en anmodning om ikke-cache, vil blæksprutter levere cache, hvis den ikke er blevet "ændret siden", og / eller hvis der ikke er nogen "overskrifter" på siden.

ignore-reload

Ignorer brugernes handling for at trykke på knappen Genindlæs eller opdater siden

ignore-no-store

Ignorer enhver regel i overskrifter for ikke at cache, f.eks. Videoer

ignore-private

Ignorer eventuelle regler i private indholdsoverskrifter, der ikke skal cachelagres, f.eks. Facebook-indhold.

refresh-ims

Blæksprutter kontakter serveren for at sikre, om objektet er det nyeste. Hvis det er tilfældet, leverer det cache

store-stale

Blæksprutte gemmer alle disse svar, selvom de ikke har en udløbsdato, er dette meget upraktisk, da de normalt ikke kan genbruges. Hvis du beslutter at aktivere det, skal du erklære max-stale = NN

max-stale=NN

Hvis du aktiverede ovenstående, skal du erklære en maksimal levetid for det svar eller den faktor. Blæksprutte leverer ikke objekter af denne stil, men kan validere det med kilden

Her er en tabel over, hvordan tilstanden af ​​frisk "FRESH" fungerer i henhold til de værdier, vi har diskuteret:

  • FRISK hvis udløber> nu, ellers STALE
  • STALE hvis alder> maks
  • FRISK hvis lm-faktor <procent, ellers FORFARET
  • FRISK hvis alder <min ellers FORALT

Her er et eksempel på en konfiguration for et bestemt firma med meget diskplads, godt udstyr og god båndbredde

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

Nu er cachen ikke kun på harddisken, vi kan også cache RAM-hukommelsen, denne værdi er for hver blæksprutteproces, så du skal tage den i betragtning, når du bruger omdirigeringer som blæksprutteGuard

maximum_object_size_in_memory 1024 KB

Den maksimale størrelse på objektet i hukommelsen, som blæksprutter gemmer i RAM. Du kan også erklære et minimum.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Som du kan se, er den ene en politik for udskiftning af cache i RAM-hukommelse og en anden på harddisken. Der er 2 politikker GDSF og LFUDA. Den første søger at forbedre procentdelen af ​​cache-hits, med mange små objekter ved hånden, den anden søger det modsatte, det holder objekter i cache uanset deres størrelse.

Det spørgsmål, som jeg forestiller mig, at du stiller mig i øjeblikket, er, hvad bruger jeg? Nå, hvis du overvejer at de i dit miljø gør mange forespørgsler, og få downloads bruger GDSF, hvis de tværtimod gør mange downloads og få LFUDA-forespørgsler . At hvis jeg anbefaler LFUDA, når du skal gøre det, ved jeg det ikke, cache i 1 TB disk, det er mere effektivt.

maximum_object_size 4 MB

Den maksimale størrelse, som et objekt muligvis skal lagres

cache_dir aufs /media/proxy249/cache 100 16 256

Hvor cachen gemmes, er opmærksomhed her, vigtigt, hvis du bruger ufs, aufs eller diskd, alle 3 fungerer mere eller mindre ens, forskellen er, at aufs og diskd arbejder med separate processer for at udføre I / O-operationerne på harddisk og undgå, at blæksprutteprocesser hænger under disse operationer. Desuden kan diskd du angive antallet af tråde, du har til denne opgave. Jeg anbefaler aufs, hvis du har et godt hold.

Størrelse 100 (megabyte), du kan sætte 100000 er næsten 100 GB afhænger af din tilgængelighed. 16 er antallet af mapper, og 256 er antallet af undermapper. Du kan spille med begge værdier afhænger af, hvor hurtige dine diske er, og hvor mange ressourcer du har.


cache_swap_low 90
cache_swap_high 95

Disse muligheder er erstatningsværdierne for objekter, det er minimums- og maksimumværdien som vandmærke ifølge blæksprutte, hvor disse tal er i procent (%), og i en meget lille cache ville 5% som dette lige nu være Lad os sige 300 objekter pr. sekund, men i meget store cacher taler vi om tusinder af MB

Nå, der forlader jeg dig, dette for nu, kommenter Og tag også hensyn til dem, der fortalte mig, at de ikke kunne cache og filtrere https (SSL) sider i blæksprutte 3.5 eller højere, jeg vil bringe dem til dig snart, hold øje med denne blog.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Ing. José Albert sagde han

    Fremragende supplement til den første del!

    Der er en masse litteratur om blæksprutter, men det er ikke altid lige ved at komme til punktet i de mest praktiske muligheder med deres respektive forklaringer og mulige reelle brugsscenarier!

    Som altid ser jeg frem til den tredje del af det!

    1.    brodydalle sagde han

      Tak for din kommentar. Det er korrekt, en kortfattet forklaring af alle relevante elementer og en bedste praksis-opsætning. Jeg er dog altid opmærksom på dine kommentarer og egne oplevelser.

  2.   Artus sagde han

    Hej, jeg har et problem med Windows-opdateringer og antivirus. Jeg har cirka 120 pc på min institution. Kan du give mig en idé om, hvordan jeg kan forbedre denne situation. Tak for din hjælp og tillykke med artiklen.

    1.    brodydalle sagde han

      Hej, tak for at du deltager .. Nå, hvis jeg kan hjælpe dig, men forklar godt, hvad dit problem er, kan du ikke downloade opdateringerne? Satte du proxy i internetindstillinger og det samme i proxyindstillingerne i din browser? Kontrollerede du portene? Eller vil du cache disse opdateringer?

      1.    Artus sagde han

        Hvad jeg har brug for er, at hver gang en computer downloader en windows- eller antivirusopdatering, forbliver den i cachen i en periode på omkring en måned, på denne måde vil jeg gerne gemme båndbredde, da hver morgen hver gang alle computere begynder at downloade den samme opdaterer hver enkelt, og forbindelsen er mættet.

        Tak for din hjælp.

    2.    Mario sagde han

      En server med blæksprutter fungerer, da de er enkle ukrypterede http-downloads. Andre løsninger til cache er WSUS og Altiris, normalt i virksomheder.

      1.    Artus sagde han

        Tak Mario, jeg vil huske det.

    3.    brodydalle sagde han

      ok klar, jeg forstår, tjek dette link. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. for at cache antivirus skal du vide, hvor opdateringerne downloades fra og under hvilken udvidelse (eksempel .exe) og cache det ...

  3.   Artus sagde han

    Tak for din hjælp.

  4.   Erick sagde han

    Godmorgen venner, kan du støtte mig med min sag. da jeg har blæksprutte 2.7 .STABLE9 på en debian 6, og jeg har alt konfigureret, og når jeg monterer det i et 10 pc-miljø, får jeg normal mail, problemet ligger, når jeg monterer det til 90 pc, det varer kun et par sekunders arbejde og derfra er alle tilbage uden internet. Kan du støtte mig?

  5.   JOSE RIVAS sagde han

    Fremragende forklaring, grundlæggende, men meget klar og præcis. Personligt den bedste forklaring, jeg har været i stand til at læse.
    Jeg har et spørgsmål, er det muligt at cache Android-applikationer såsom apk og xapk?
    Og hvad ville være den korrekte måde at konfigurere dynamisk cache uanset filernes oprindelse?
    Jeg bruger pfSense 2.4.5.