Cache calamar - partea 2

Squid nu este doar un serviciu proxy și cache, poate face mult mai mult: gestionează acl (liste de acces), filtrează conținutul, poate face chiar filtrare ssl chiar și în modul transparent (metoda proxy - fără a fi nevoie să configurezi în setările proxy din browserele lor, este ca un om în mijloc, nimeni nu știe că este acolo). Așa că văd în mod obișnuit cum se pierde întregul potențial al acestei aplicații, neștiind cum să configurați fiecare dintre părțile sale.

Acum lucrul interesant pe care îl face calmarul este cache-ul (după părerea mea). Îmi veți spune de ce cache? Motivul este simplu, gestionați mai bine utilizarea vitezei dvs. și lățimea de bandă este principalul lucru. Gândiți-vă bine, 1000 de persoane din compania dvs. consultând la fiecare 5 minute, pagini obișnuite, Google, Hotmail, Gmail, etc ... astfel încât să descărcați imagini, bannere, publicitate, conținut html de mai multe ori, toate acestea sunt lucruri statice, nu acestea se schimbă atât de frecvent, mai bine să le aveți stocate în rețeaua locală și livrați o copie pe care o considerați recentă în configurațiile pe care le-ați luat în considerare.

Cum se face? Simplu cu următoarea propoziție:

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

Așa cum spun mereu, nu credeți în tot, așa că vă invit să citiți din sursa oficială. Vă recomand să citiți manualul acestei propoziții AICI

Sentință refresh_pattern Va fi întotdeauna eticheta noastră să adăugăm noi parametri în cache.

Important, listele cache trebuie să fie secvențiale, deoarece odată ce se potrivește cu prima care se potrivește cu obiectul, nu va continua să citească celelalte reguli

Expresiile regulate sunt sensibile la majuscule, de aceea flv nu este același ca FLV, dar puteți evita acest lucru dacă doriți, folosind opțiunea -i . Atunci ar arăta așa refresh_pattern -i

„Min”: este timpul (minute) în care un obiect va fi considerat „recent sau proaspăt” și dacă nu are o etichetă explicită „expirat”. În mod implicit, calmarul recomandă să fie 0, din motive pentru care unele aplicații dinamice se pot comporta ciudat, bla bla bla bla, într-adevăr această valoare ar trebui să fie un număr pe care îl considerați util și eficient pentru elementele pe care doriți să le cache, exemplu: jpg, 1440 de minute (pe zi) mi se pare bine, nu este ca și cum imaginile unui post se schimbă la fiecare 5 minute pe o pagină.

'La sută' Este procentul de vârstă al unui obiect (de la ultima modificare) care va fi considerat „recent sau proaspăt”. Permiteți-mi să vă explic, poate făcând o reîncărcare constantă sau o reîmprospătare pentru a vedea ultimele modificări care au fost aduse unei pagini web, calmarul ar putea lua în considerare dacă are deja, să zicem, 50% din timpul finalizat între minute y max, descărcați din nou acel obiect de pe internet și vă oferă o copie nouă.

„Max” este limita mai mare sau egală cu „Min” cât timp un obiect este considerat „recent sau proaspăt”, să presupunem că o imagine a unei pagini a fost consultată o singură dată de către un utilizator, acel obiect a ajuns deja la momentul său minute, dar nu max, atunci când este interogat din nou, va fi livrată o copie cache.

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

Aceste opțiuni au fost făcute în principal pentru a ignora comportamentele prestabilite în limbi și protocoale, pentru a garanta utilizarea eficientă a cache-ului.

override-expire

Aplică timpul minim al unui obiect, chiar dacă serverul a trimis un timp de expirare mai scurt (de exemplu, lucruri precum antetul sau Cache-Control: max-age). Dacă facem acest lucru, va apărea un „avertisment” care spune lucruri de genul acesta „VIOLĂ standardul HTTP”, dar acestea sunt doar avertismente pe care le putem ignora. Acum, dacă timpul trimis de un server este mai lung, atunci calmarul va dura timpul (expirarea) serverului

override-lastmod

Consolidează timpul minim al unui articol, chiar dacă acel articol a fost modificat recent.

reload-into-ims

Scurta explicație este că împiedică ca, atunci când apăsăm butonul de reîmprospătare sau să facem o cerere fără cache, calmarul să livreze cache dacă nu a fost „modificat de atunci” și / sau dacă nu există „antete” pe pagină.

ignore-reload

Ignorați acțiunea utilizatorilor de a apăsa butonul de reîncărcare sau reîmprospătare a paginii

ignore-no-store

Ignorați orice regulă din anteturi pentru a nu memora în cache, de exemplu pentru videoclipuri

ignore-private

Ignorați orice regulă din anteturile de conținut privat care nu ar trebui stocate în cache, de exemplu: conținutul de pe facebook.

refresh-ims

Squid contactează serverul, pentru a se asigura că obiectul este cel mai nou. Dacă este, atunci va livra memoria cache

store-stale

Squid va salva toate acele răspunsuri, chiar dacă nu au o dată de expirare, acest lucru este foarte practic, deoarece de obicei nu pot fi refolosite. Dacă decideți să o activați, trebuie să declarați max-stale = NN

max-stale=NN

Dacă ați activat cele de mai sus, trebuie să declarați o durată de viață maximă pentru acel răspuns sau factor. Squid nu livrează obiecte de acest stil, dar îl poate valida cu sursa

Iată un tabel cu modul în care funcționează starea „FRESH” în funcție de valorile pe care le-am discutat:

  • FRESH dacă expiră> acum, altfel STALE
  • STALE dacă vârsta> max
  • FRESH if lm-factor <procent, altfel STALE
  • FRESH if age <min else STALE

Iată un exemplu de configurație pentru o anumită companie cu mult spațiu pe disc, echipamente bune și lățime de bandă bună

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

Acum cache-ul nu se află doar pe hard disk, putem memora și memoria RAM, această valoare este pentru fiecare proces de calamar, deci trebuie să o luați în considerare atunci când utilizați redirectoare precum squidGuard

maximum_object_size_in_memory 1024 KB

Dimensiunea maximă a obiectului în memorie pe care calmarul îl va stoca în RAM. De asemenea, puteți declara un minim.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

După cum puteți vedea, una este politica pentru înlocuirea cache-ului în memoria RAM și alta pe hard disk. Există 2 politici GDSF și LFUDA. Primul caută să îmbunătățească procentajul de accesări ale cache-ului, având la îndemână multe obiecte mici, al doilea caută opusul, păstrează obiectele în cache, indiferent de mărimea lor.

Întrebarea pe care îmi închipui că mi-o puneți în acest moment este: Ce folos? Ei bine, dacă considerați că în mediul dvs. fac multe interogări și puține descărcări folosesc GDSF dacă dimpotrivă fac multe descărcări și puține interogări LFUDA. Că dacă recomand LFUDA când o să faceți, nu știu, cache în 1TB de disc, este mai eficient.

maximum_object_size 4 MB

Dimensiunea maximă pe care o poate avea un obiect trebuie să fie stocată

cache_dir aufs /media/proxy249/cache 100 16 256

Unde va fi stocată memoria cache, atenție aici, important este dacă utilizați ufs, aufs sau diskd, toate cele 3 funcționează mai mult sau mai puțin la fel, diferența este că aufs și diskd funcționează cu procese separate pentru a efectua operațiuni de I / O pe hard disk și evitați ca procesele de calamar să atârne în timpul acestor operații, în plus, puteți specifica numărul de fire pe care le veți avea pentru această sarcină. Recomand aufs dacă aveți o echipă bună.

Dimensiunea 100 (megaocteți), puteți pune 100000 este aproape 100 GB depinde de disponibilitatea dvs. 16 este numărul de foldere, iar 256 este numărul de sub-foldere. Puteți juca cu ambele valori depinde de cât de rapide sunt discurile dvs. și de cât de multe resurse aveți.


cache_swap_low 90
cache_swap_high 95

Aceste opțiuni sunt valorile de înlocuire a obiectelor, este valoarea minimă și maximă ca filigran în funcție de calmar, unde aceste numere sunt în procente (%) și într-un cache foarte mic, 5% ca acesta ar fi acum să spunem 300 de obiecte pe secundă , dar în cache-urile foarte mari am vorbi despre mii de MB

Ei bine, acolo te las, asta deocamdată, comentează Și luați în considerare și pe cei care mi-au spus că nu pot cache și filtra paginile https (SSL) în calamar 3.5 sau mai mare, vă voi aduce în curând, rămâneți la curent cu acest blog.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Jose Albert el a spus

    Complement excelent pentru prima parte!

    Există o mulțime de literatură despre Squid despre asta, dar ajungerea la subiect în opțiunile sale cele mai practice, cu explicațiile lor respective și posibilele scenarii de utilizare reală, nu sunt întotdeauna la îndemână!

    Ca întotdeauna, aștept cu nerăbdare partea a treia!

    1.    brodydalle el a spus

      Multumesc pentru comentariul tau. Este corect, o explicație concisă a tuturor elementelor relevante și câteva setări de bune practici. Cu toate acestea, sunt întotdeauna atent la comentariile și experiențele proprii.

  2.   artus el a spus

    Bună ziua, am o problemă cu actualizările Windows și antivirus. Am aproximativ 120 de bucăți la instituția mea. Ai putea să-mi dai o idee despre cum să îmbunătățesc această situație. Vă mulțumim pentru ajutor și felicitări pentru articol.

    1.    brodydalle el a spus

      Bună ziua, mulțumesc pentru participare .. bine dacă vă pot ajuta, dar explicați bine care este problema dvs., nu puteți descărca actualizările? Ați pus proxy în opțiunile de Internet și același lucru în opțiunile de proxy ale browserului dvs.? Ați verificat porturile? Sau vreți să ascundeți în cache aceste actualizări?

      1.    artus el a spus

        Ceea ce am nevoie este că, de fiecare dată când un computer descarcă o actualizare Windows sau antivirus, acesta rămâne în cache o perioadă de aproximativ o lună, în acest fel aș dori să economisesc lățimea de bandă, deoarece în fiecare dimineață de fiecare dată toate computerele încep să descarce fiecare aceleași actualizări și conexiunea satura.

        Multumesc pentru ajutor.

    2.    Mario el a spus

      Un server cu Squid funcționează, deoarece sunt descărcări http simple necriptate. Alte soluții pentru cache sunt WSUS și Altiris, normale în companii.

      1.    artus el a spus

        Mulțumesc Mario, o voi ține cont.

    3.    brodydalle el a spus

      ok gata, înțeleg, verifică acest link. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. pentru a ascunde în cache antivirusul, trebuie să știți de unde sunt descărcate actualizările și sub ce extensie (exemplu .exe) și să-l cache ...

  3.   artus el a spus

    Multumesc pentru ajutor.

  4.   Erick el a spus

    Bună dimineața prieteni, ai putea să mă sprijini cu cazul meu. Din moment ce am calamar 2.7 .STABLE9 pe un debian 6 și am totul configurat și când îl montez într-un mediu de 10 bucăți, primesc mail normal, problema stă când îl montez pentru 90 buc, durează doar câteva secunde de lucru și de acolo toată lumea este rămân fără internet. M-ai putea sprijini?

  5.   JOSE RIVAS el a spus

    Explicație excelentă, de bază, dar foarte clară și precisă. Personal, cea mai bună explicație pe care am putut să o citesc.
    Am o întrebare, este posibil să cache aplicații Android cum ar fi apk și xapk?
    Și care ar fi modul corect de a configura cache-ul dinamic indiferent de originea fișierelor?
    Folosesc pfSense 2.4.5.