Inktviscache - deel 2

Squid is niet alleen een proxy- en cacheservice, het kan veel meer: ​​acl (toegangslijsten) beheren, inhoud filteren, het kan zelfs ssl-filtering uitvoeren, zelfs in transparante modus (proxymethode - zonder te hoeven configureren in proxy-instellingen vanuit hun browser, het is als de mens in het midden, niemand weet dat het er is). Dus ik zie vaak hoe het volledige potentieel van deze applicatie wordt verspild door niet te weten hoe elk van zijn onderdelen moet worden geconfigureerd.

Het interessante dat inktvis nu doet, is de cache (naar mijn mening). Je zult me ​​vertellen waarom cache? De reden is simpel, beter beheren van het gebruik van je snelheid en bandbreedte is het belangrijkste. Denk goed na, 1000 mensen in uw bedrijf raadplegen elke 5 minuten gemeenschappelijke pagina's, Google, Hotmail, Gmail, enz ... zodat u steeds weer afbeeldingen, banners, advertenties, html-inhoud gaat downloaden, dit zijn allemaal statische dingen, nee ze veranderen zo vaak, het is beter om ze op te slaan in uw lokale netwerk en u levert een kopie af die u als recent beschouwt binnen de configuraties die u overwoog.

Hoe het te doen? Simpel met de volgende zin:

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

Zoals ik altijd zeg, geloof niet in alles, dus ik nodig je uit om uit de officiële bron te lezen. Ik raad u aan de handleiding van deze zin te lezen HIER

Zin refresh_patroon Het zal altijd ons label zijn om nieuwe parameters aan de cache toe te voegen.

Belangrijk, uw cachelijsten moeten opeenvolgend zijn, want zodra deze overeenkomt met de eerste die overeenkomt met het object, zal het uw andere regels niet verder lezen

Reguliere expressies zijn hoofdlettergevoelig, daarom is flv niet hetzelfde als FLV, maar u kunt dit voorkomen als u dat wilt door de optie te gebruiken -i . Dan zou het er zo uitzien ververs_patroon -i

'Min': Het is de tijd (minuten) waarin een object wordt beschouwd als "recent of vers" en als het geen expliciet label "verlopen" heeft. Standaard raadt squid aan dat het 0 is, om redenen dat sommige dynamische applicaties zich vreemd kunnen gedragen, pure blah blah blah, deze waarde zou eigenlijk een getal moeten zijn dat je nuttig en effectief acht voor de elementen die je wilt cachen, voorbeeld: jpg, 1440 minuten (per dag) lijkt me prima, het is niet zo dat op een pagina de afbeeldingen van een bericht elke 5 minuten veranderen.

'Percentage' Het is het percentage van de ouderdom van een object (sinds de laatste wijziging) dat als «recent of vers» wordt beschouwd. Laat me het uitleggen, misschien door constant opnieuw te laden of te verversen om de laatste wijzigingen te zien die aan een webpagina zijn aangebracht, zou inktvis kunnen overwegen of het al bijvoorbeeld 50% van de tijd voltooid is tussen Min y max, download dat object opnieuw van internet en geef je een nieuwe kopie.

'Max' is de limiet hoger dan of gelijk aan 'Min' hoe lang een object als «recent of nieuw» wordt beschouwd, stel dat een afbeelding van een pagina maar één keer door een gebruiker is geraadpleegd, dat object zijn tijd al heeft bereikt Min, maar niet de max, en als het opnieuw wordt opgevraagd, wordt een cachekopie afgeleverd.

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

Deze opties zijn voornamelijk gemaakt om vooraf vastgesteld gedrag in talen en protocollen te negeren, om een ​​effectief gebruik van de cache te garanderen.

override-expire

Het dwingt de minimale tijd van een object af, zelfs als de server een kortere vervaltijd heeft verzonden (bijvoorbeeld zaken als header of Cache-Control: max-age). Als we dit doen, zal een "waarschuwing" verschijnen met de volgende dingen als "SCHENDT de HTTP-standaard", maar dat zijn slechts waarschuwingen die we kunnen negeren. Als de tijd die een server verzendt langer is, zal inktvis de tijd (expiratie) van de server in beslag nemen

override-lastmod

Versterkt de minimumtijd van een item, zelfs als dat item recentelijk is gewijzigd.

reload-into-ims

De korte uitleg is dat het voorkomt dat wanneer we op de verversknop drukken of een verzoek om geen cache te doen, squid de cache zal leveren als deze niet is "gewijzigd sinds" en / of als er geen "headers" op de pagina staan.

ignore-reload

Negeer de actie van gebruikers om op de knop Herladen of Pagina vernieuwen te drukken

ignore-no-store

Negeer elke regel in headers om niet te cachen, bijvoorbeeld van video's

ignore-private

Negeer elke regel in headers van privé-inhoud die niet in de cache mogen worden opgeslagen, bijvoorbeeld: Facebook-inhoud.

refresh-ims

Squid neemt contact op met de server om te garanderen of het object het nieuwste is. Als dit het geval is, levert het cache op

store-stale

Inktvis slaat al die reacties op, zelfs als ze geen vervaldatum hebben, dit is erg onpraktisch omdat ze meestal niet opnieuw kunnen worden gebruikt. Als u besluit het in te schakelen, moet u max-stale = NN aangeven

max-stale=NN

Als je het bovenstaande hebt ingeschakeld, moet je een maximale levensduur aangeven voor die reactie of factor. Squid levert geen objecten van deze stijl, maar kan het valideren bij de bron

Hier is een tabel die laat zien hoe de "FRESH" -status werkt volgens de waarden die we hebben besproken:

  • VERS indien verlopen> nu, anders STALE
  • STALE als leeftijd> max
  • VERS als lm-factor <procent, anders STALE
  • VERS als leeftijd <min anders STALE

Hier is een voorbeeldconfiguratie voor een specifiek bedrijf met veel schijfruimte, goede apparatuur en goede bandbreedte

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 staat de cache niet alleen op de harde schijf, we kunnen ook het ram-geheugen cachen, deze waarde is voor elk inktvisproces, dus je moet er rekening mee houden wanneer je redirectors gebruikt zoals inktvisGuard

maximum_object_size_in_memory 1024 KB

De maximale grootte van het object in het geheugen dat inktvis in RAM zal opslaan. U kunt ook een minimum aangeven.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Zoals u kunt zien, is een beleid voor het vervangen van de cache in het RAM-geheugen en een andere op de harde schijf. Er zijn 2 beleidsregels GDSF en LFUDA. De eerste probeert het percentage cache-hits te verbeteren, met veel kleine objecten bij de hand, de tweede zoekt het tegenovergestelde, het houdt objecten in de cache, ongeacht hun grootte.

De vraag die je me op dit moment voorstelt, is: wat voor nut heb ik? Welnu, als je bedenkt dat ze in jouw omgeving veel queries doen en weinig downloads GDSF gebruiken, terwijl ze daarentegen veel downloads en weinig LFUDA-queries doen. Dat als ik LFUDA aanbeveel wanneer je gaat doen, ik weet het niet, cache in 1 TB schijf, het efficiënter is.

maximum_object_size 4 MB

De maximale grootte die een object mag hebben om te worden opgeslagen

cache_dir aufs /media/proxy249/cache 100 16 256

Waar de cache wordt opgeslagen, let hier op, belangrijk is dat als je ufs, aufs of diskd gebruikt, ze alle 3 min of meer hetzelfde werken, het verschil is dat aufs en diskd met aparte processen werken om I / O-bewerkingen op de harde schijf uit te voeren en vermijd dat inktvisprocessen vastlopen tijdens deze bewerkingen, bovendien kunt u op schijf het aantal threads specificeren dat u voor deze taak zult hebben. Ik raad aufs aan als je een goed team hebt.

Grootte 100 (megabytes), u kunt 100000 plaatsen is bijna 100 GB afhankelijk van uw beschikbaarheid. 16 is het aantal mappen en 256 is het aantal submappen. Je kunt met beide waarden spelen, afhankelijk van hoe snel je schijven zijn en hoeveel bronnen je hebt.


cache_swap_low 90
cache_swap_high 95

Deze opties zijn de objectvervangingswaarden, het is de minimum- en maximumwaarde als watermerk volgens inktvis, waarbij deze getallen in percentage (%) zijn, en in een zeer kleine cache, 5% zoals dit nu zou zijn, laten we zeggen 300 objecten per seconde , maar in zeer grote caches zouden we het hebben over duizenden MB

Nou, daar laat ik je, dit voorlopig, commentaar En houd ook rekening met degenen die me vertelden dat ze geen https (SSL) -pagina's in squid 3.5 of hoger konden cachen en filteren, ik zal ze binnenkort naar je toe brengen, blijf op de hoogte van deze blog.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   José Albert zei

    Uitstekende aanvulling op het eerste deel!

    Er is veel literatuur over Squid over, maar de meest praktische opties met hun respectievelijke uitleg en mogelijke scenario's voor echt gebruik zijn niet altijd voorhanden!

    Zoals altijd kijk ik uit naar het derde deel ervan!

    1.    brodydalle zei

      Bedankt voor je reactie. Het is correct, een beknopte uitleg van alle relevante elementen, en een paar best practice instellingen. Ik ben echter altijd alert op uw opmerkingen en eigen ervaringen.

  2.   artus zei

    Hallo, ik heb een probleem met Windows-updates en antivirus. Ik heb ongeveer 120 pc op mijn instelling. Kunt u mij een idee geven hoe deze situatie kan worden verbeterd? Bedankt voor je hulp en gefeliciteerd met het artikel.

    1.    brodydalle zei

      Hallo, bedankt voor je deelname .. nou als ik je kan helpen, maar leg goed uit wat je probleem is, kun je de updates niet downloaden? Heb je proxy in internet opties gezet en hetzelfde in de proxy opties van je browser, heb je de poorten gecontroleerd of wil je deze updates cachen?

      1.    artus zei

        Wat ik nodig heb, is dat elke keer dat een computer een Windows- of antivirusupdate downloadt, deze ongeveer een maand in de cache blijft, op deze manier zou ik bandbreedte willen besparen, omdat elke ochtend elke keer alle computers beginnen met het downloaden van dezelfde updates en de verbinding raakt verzadigd.

        Bedankt voor uw hulp.

    2.    Mario zei

      Een server met Squid werkt, aangezien het eenvoudige niet-versleutelde http-downloads zijn. Andere oplossingen voor cache zijn WSUS en Altiris, normaal in bedrijven.

      1.    artus zei

        Bedankt Mario, ik zal het in gedachten houden.

    3.    brodydalle zei

      ok klaar, ik begrijp het, check deze link. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. om antivirus te cachen, moet je weten waar updates worden gedownload en onder welke extensie (bijvoorbeeld .exe) en cachen ...

  3.   artus zei

    Bedankt voor uw hulp.

  4.   Erick zei

    Goedemorgen vrienden, kunnen jullie me steunen met mijn zaak. Omdat ik inktvis 2.7 .STABLE9 heb op een debian 6, en ik alles heb geconfigureerd en als ik het in een 10 pc-omgeving monteer, krijg ik normale mail, het probleem ligt wanneer ik het voor 90 pc monteer, het duurt maar een paar seconden om te werken en vanaf daar is iedereen ze zitten zonder internet. Kunt u mij steunen?

  5.   JOZE RIVAS zei

    Uitstekende uitleg, eenvoudig maar heel duidelijk en nauwkeurig. Persoonlijk de beste uitleg die ik heb kunnen lezen.
    Ik heb een vraag, is het mogelijk om Android-applicaties zoals apk en xapk te cachen?
    En wat zou de juiste manier zijn om dynamische cache te configureren, ongeacht de oorsprong van de bestanden?
    Ik gebruik pfSense 2.4.5.