Bläckfiskcache - del 2

Squid är inte bara en proxy- och cachetjänst, det kan göra mycket mer: hantera acl (åtkomstlistor), filtrera innehåll, det kan till och med göra ssl-filtrering även i transparent läge (proxymetod - utan att behöva konfigurera i proxyinställningar från sina webbläsare , det är som en man i mitten, ingen vet att den är där). Så jag ser ofta hur den här potentialens fulla potential går till spillo genom att inte veta hur man konfigurerar var och en av dess delar.

Nu är det intressanta som bläckfisk gör cachen (enligt min mening). Du kommer att berätta för mig, varför cache? Anledningen är enkel, bättre hantering av din hastighet och bandbredd är det viktigaste. Tänk noga, 1000 personer i ditt företag konsulterar var 5: e minut, vanliga sidor, Google, Hotmail, Gmail, etc ... så att du kommer att ladda ner bilder, banners, reklam, html-innehåll om och om igen, alla dessa är statiska saker, nej De ändras så ofta, bättre att ha dem lagrade i ditt lokala nätverk och du levererar en kopia som du anser vara nyligen inom de konfigurationer som du övervägde.

Hur man gör det? Enkelt med följande mening:

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

Som jag alltid säger, tro inte på allt, så jag uppmanar dig att läsa från den officiella källan. Jag rekommenderar att du läser manualen för den här meningen HÄR

Mening uppdatera_mönster Det kommer alltid att vara vår etikett att lägga till nya parametrar i cacheminnet.

Viktigt, dina cachelistor måste vara sekventiella, för när den matchar den första som matchar objektet fortsätter den inte att läsa dina andra regler

Regeluttryck är skiftlägeskänsliga, därför är flv inte samma som FLV, men du kan undvika detta om du vill genom att använda alternativet -i . Då skulle det se ut så här refresh_pattern -i

'Min': är den tid (minuter) då ett objekt kommer att betraktas som "nyligen eller nytt" och om det inte har en uttrycklig etikett "utgången". Som standard rekommenderar bläckfisk att det är 0, av anledningar till att vissa dynamiska applikationer kan bete sig konstigt, ren bla bla bla, verkligen bör detta värde vara ett tal som du anser vara användbart och effektivt för de element du vill cache, exempel: jpg, 1440 minuter (per dag) verkar bra för mig, det är inte som om bilderna i ett inlägg ändras var 5: e minut på en sida.

'Procent' Det är procentandelen av ett objekts ålder (sedan den senaste modifieringen) som kommer att betraktas som «ny eller ny». Låt mig förklara, kanske gör en konstant omladdning eller uppdatering för att se de senaste ändringarna som gjordes på en webbsida, bläckfisk kan överväga om den redan har, säg, 50% av tiden avslutad mellan min y max, ladda ner objektet igen från internet och ge dig en ny kopia.

'Max' är gränsen över eller lika med 'Min' hur länge ett objekt anses vara ”nyligen eller nytt”, antar att en bild på en sida bara har konsulterats en gång av en användare, det objektet har redan nått sin tid min, men inte max, när det efterfrågas igen kommer en cache-kopia att levereras.

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

Dessa alternativ gjordes mestadels för att ignorera förinställda beteenden på språk och protokoll för att garantera effektiv användning av cachen.

override-expire

Det verkställer minimaltiden för ett objekt, även om servern skickade en kortare utgångstid (exempelvis saker som rubrik eller Cache-Control: max-age). Om vi ​​gör detta visas en "varning" som säger saker som denna "VIOLIERAR HTTP-standarden" men det är bara varningar som vi kan ignorera. Om tiden som en server skickar är längre tar bläckfisk tid (utgång) för servern

override-lastmod

Förstärker minimitiden för ett objekt, även om det nyligen modifierades.

reload-into-ims

Den korta förklaringen är att den förhindrar att när vi trycker på uppdateringsknappen eller gör en begäran utan cache, kommer bläckfisk att leverera cache om den inte har "modifierats sedan" och / eller om det inte finns några "rubriker" på sidan.

ignore-reload

Ignorera användarnas åtgärd för att trycka på knappen Ladda om eller uppdatera sidan

ignore-no-store

Ignorera någon regel i rubriker som inte cachar, till exempel videor

ignore-private

Ignorera alla regler i privata innehållsrubriker som inte ska cachas, exempel: Facebook-innehåll.

refresh-ims

Squid kontaktar servern för att säkerställa om objektet är det nyaste. Om det är så kommer det att leverera cache

store-stale

Tioarmad bläckfisk kommer att spara alla dessa svar, även om de inte har ett utgångsdatum, är detta mycket opraktiskt eftersom de vanligtvis inte kan återanvändas. Om du väljer att aktivera det måste du deklarera max-inaktuell = NN

max-stale=NN

Om du aktiverat ovanstående måste du deklarera en maximal livslängd för det svaret eller faktorn. Squid levererar inte objekt av den här stilen men kan validera det med källan

Här är en tabell över hur tillståndet för färskt "FRESH" fungerar enligt de värden som vi har diskuterat:

  • FRESH om utgår> nu, annars STALE
  • STALE om ålder> max
  • FRESH om lm-faktor <procent, annars STALE
  • FÄRSK om ålder <min annars FÖRFALDIG

Här är ett exempel på konfiguration för ett specifikt företag med mycket diskutrymme, bra utrustning och bra bandbredd

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 finns cachen inte bara på hårddisken, vi kan också cache RAM-minnet, detta värde gäller för varje bläckfiskprocess, så du måste ta hänsyn till det när du använder omdirigerare som bläckfiskGuard

maximum_object_size_in_memory 1024 KB

Den maximala storleken på objektet i minnet som bläckfisk lagras i RAM. Du kan också förklara ett minimum.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Som du kan se är en policy för att ersätta cache i RAM-minne och en annan på hårddisken. Det finns två policyer GDSF och LFUDA. Den första syftar till att förbättra andelen cache-träffar, med många små objekt till hands, den andra söker det motsatta, det håller objekt i cache oavsett storlek.

Frågan som jag föreställer mig att du ställer mig just nu är, vilken användning använder jag? Om du anser att de i din miljö gör många frågor och få nedladdningar använder GDSF om de tvärtom gör många nedladdningar och få LFUDA-frågor. Att om jag rekommenderar LFUDA när du ska göra det vet jag inte, cache i 1TB hårddisk, det är mer effektivt.

maximum_object_size 4 MB

Den maximala storleken som ett objekt kan behöva lagras

cache_dir aufs /media/proxy249/cache 100 16 256

Där cachen lagras är uppmärksamhet här, viktigt om du använder ufs, aufs eller diskd, alla 3 fungerar mer eller mindre samma, skillnaden är att aufs och diskd arbetar med separata processer för att göra I / O-operationer på hårddisken och undvik att bläckfiskprocesser hänger under dessa operationer, dessutom kan du ange hur många trådar du har för den här uppgiften. Jag rekommenderar aufs om du har ett bra team.

Storlek 100 (megabyte), du kan sätta 100000 är nästan 100 GB beror på din tillgänglighet. 16 är antalet mappar och 256 är antalet undermappar. Du kan spela med båda värdena beror på hur snabbt dina skivor är och hur mycket resurser du har.


cache_swap_low 90
cache_swap_high 95

Dessa alternativ är värdena för byte av objekt, det är det lägsta och högsta värdet som vattenstämpel enligt bläckfisk, där dessa siffror är i procent (%), och i en mycket liten cache skulle 5% så här just nu vara säg 300 objekt per sekund , men i mycket stora cachar skulle vi prata om tusentals MB

Tja, där lämnar jag dig, detta för tillfället, kommentera Och ta också hänsyn till de som sa till mig att de inte kunde cache och filtrera https (SSL) sidor i bläckfisk 3.5 eller högre, jag tar dem till dig snart, håll dig uppdaterad med den här bloggen.


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

11 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Ing. José Albert sade

    Utmärkt komplement till första delen!

    Det finns mycket litteratur om bläckfisk om det, men att komma till punkten i de mest praktiska alternativen med sina respektive förklaringar och möjliga scenarier för verklig användning är inte alltid till hands!

    Som alltid ser jag fram emot den tredje delen av den!

    1.    brodydalle sade

      Tack för din kommentar. Det är korrekt, en kortfattad förklaring av alla relevanta element och en bästa praxis. Men jag är alltid uppmärksam på dina kommentarer och egna erfarenheter.

  2.   artus sade

    Hej, jag har problem med Windows-uppdateringar och antivirusprogram. Jag har cirka 120 st på min institution. Kan du ge mig en uppfattning om hur jag kan förbättra den här situationen. Tack för din hjälp och grattis till artikeln.

    1.    brodydalle sade

      Hej, tack för att du deltar .. ja, om jag kan hjälpa dig, men förklara bra vad ditt problem är, kan du inte ladda ner uppdateringarna? Har du lagt in proxy i Internetalternativ och detsamma i proxyalternativen i din webbläsare? Kontrollerade du portarna? Eller vill du cacha dessa uppdateringar?

      1.    artus sade

        Vad jag behöver är att varje gång en dator laddar ner en Windows- eller antivirusuppdatering stannar den i cachen under en period av ungefär en månad, på detta sätt vill jag spara bandbredd, eftersom varje morgon varje gång alla datorer börjar ladda ner samma uppdateringar var och en och anslutningen mättas.

        Tack för din hjälp.

    2.    Mario sade

      En server med Squid fungerar eftersom de är enkla okrypterade http-nedladdningar. Andra lösningar för cache är WSUS och Altiris, normalt i företag.

      1.    artus sade

        Tack Mario, jag kommer att ha det i åtanke.

    3.    brodydalle sade

      ok redo, jag förstår, kolla den här länken. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. för att cache-antivirus måste du veta var uppdateringarna laddas ner från och under vilket tillägg (exempel .exe) och cache det ...

  3.   artus sade

    Tack för din hjälp.

  4.   Erick sade

    God morgon vänner, kan ni stödja mig i mitt fall. Eftersom jag har bläckfisk 2.7 .STABLE9 på en debian 6, och jag har allt konfigurerat och när jag monterar det i en 10-pc-miljö får jag normal post, problemet ligger när jag monterar det på 90 st, det tar bara några sekunder att arbeta och därifrån är alla de lämnas utan internet. Kan du stödja mig?

  5.   JOSE RIVAS sade

    Utmärkt förklaring, grundläggande men väldigt tydlig och exakt. Personligen den bästa förklaringen jag har kunnat läsa.
    Jag har en fråga, är det möjligt att cache Android-applikationer som apk och xapk?
    Och vad skulle vara det rätta sättet att konfigurera dynamisk cache oavsett filernas ursprung?
    Jag använder pfSense 2.4.5.