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, skal du ikke tro på alt, så jeg opfordrer dig til at læse fra den officielle kilde. Jeg anbefaler at læse manualen til denne afgørelse HER.
Refresh_pattern - sætningen vil altid være vores tag til 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 skelner mellem store og små bogstaver, så flv er ikke det samme som FLV, men du kan undgå dette, hvis du ønsker det, ved at bruge -i- indstillingen . Så ville det se sådan ud: refresh_pattern -i
'Min': Dette er den tid (i minutter), hvor et objekt betragtes som "nyt", hvis det ikke har et eksplicit "udløbet"-tag. Som standard anbefaler Squid 0, fordi nogle dynamiske applikationer kan opføre sig mærkeligt. Denne værdi bør egentlig være et tal, du anser for nyttigt og effektivt for de elementer, du vil cache. For eksempel synes 1440 minutter (én dag) at være fint for mig for JPG'er; det er ikke som om billederne i et indlæg på en hjemmeside ændrer sig hvert 5. minut.
'Procent' er den procentdel af et objekts alder (siden den sidste ændring), der vil blive betragtet som "nylig" eller "frisk". Hvis du for eksempel konstant genindlæser eller opdaterer en webside for at se de seneste ændringer, kan Squid overveje, at hvis objektet har nået f.eks. 50 % af tiden mellem minimums- og maksimumværdierne , vil det downloade objektet fra internettet igen og give dig en frisk kopi.
'Max' er grænsen over eller lig med 'Min' for, hvor længe et objekt betragtes som "nyligt eller friskt". Antag, at et billede på en side kun er blevet vist én gang af en bruger; objektet har allerede nået sin minimumstid , men ikke den maksimale tid . Så når det vises igen, leveres en cachelagret 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 caching ikke kun på harddisken; vi kan også cache i RAM. Denne værdi er pr. Squid-proces, så du bør tage den i betragtning, når du bruger omdirigeringer som SquidGuard.
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å, det var alt for nu. Kommentér, og tag også dem i betragtning, der fortalte mig, at de ikke kunne cache og filtrere HTTPS (SSL) sider i Squid 3.5 eller nyere; jeg bringer det til jer snart, så følg med på denne blog.