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.
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!
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.
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.
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?
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.
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.
Mulțumesc Mario, o voi ține cont.
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 ...
Multumesc pentru ajutor.
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?
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.