Squid nuk është vetëm një shërbim proxy dhe cache, por mund të bëjë shumë më tepër: menaxhoni ACL (listat e hyrjes), filtroni përmbajtjen, madje mund të bëjë filtrim ssl edhe në modalitetin transparent (metoda proxy - pa pasur nevojë të konfiguroni në cilësimet e proxy nga shfletuesit tuaj, është si njeriu në mes, askush nuk e di se është atje). Kështu që unë zakonisht shoh se si harxhohet potenciali i plotë i këtij aplikacioni duke mos ditur të konfigurojmë secilën nga pjesët e tij.
Tani gjëja interesante që bën kallamari është cache (për mendimin tim). Do të më tregoni pse cache? Arsyeja është e thjeshtë, menaxhoni më mirë përdorimin e shpejtësisë dhe gjerësisë së bandës është gjëja kryesore. Mendoni me kujdes, 1000 njerëz në kompaninë tuaj që këshillohen çdo 5 minuta, faqe të zakonshme, Google, Hotmail, Gmail, etj ... në mënyrë që të shkarkoni imazhe, banderola, reklama, përmbajtje HTML pa pushim, të gjitha këto janë gjëra statike, jo ato ndryshojnë kaq shpesh, më mirë t'i ruash në rrjetin tënd lokal dhe të dërgosh një kopje që e konsideron të kohëve të fundit brenda konfigurimeve që ke konsideruar.
Si ta bëjmë atë? Thjeshtë me fjalinë e mëposhtme:
refresh_pattern [-i] regex min percent max [options]
Siç them gjithmonë, mos i besoni të gjithave, prandaj ju inkurajoj të lexoni nga burimi zyrtar. Unë rekomandoj leximin e manualit për këtë vendim KËTU.
Deklarata refresh_pattern do të jetë gjithmonë etiketa jonë për shtimin e parametrave të rinj në memorien e përkohshme.
E rëndësishme, listat tuaja të cache duhet të jenë sekuenciale, sepse pasi të përputhet me të parën që përputhet me objektin, nuk do të vazhdojë të lexojë rregullat tuaja të tjera.
Shprehjet e rregullta janë të ndjeshme ndaj shkronjave të mëdha dhe të vogla, kështu që flv nuk është e njëjta gjë me FLV, por mund ta shmangni këtë nëse dëshironi duke përdorur opsionin -i . Atëherë do të dukej kështu: refresh_pattern -i
'Min': Kjo është koha (në minuta) që një objekt do të konsiderohet "i freskët" nëse nuk ka një etiketë të qartë "të skaduar". Si parazgjedhje, Squid rekomandon 0, sepse disa aplikacione dinamike mund të sillen çuditshëm. Kjo vlerë duhet të jetë një numër që ju e konsideroni të dobishëm dhe efektiv për elementët që dëshironi të ruani në memorien e përkohshme. Për shembull, 1440 minuta (një ditë) më duket mirë për JPG-të; nuk është se imazhet në një postim në një faqe interneti ndryshojnë çdo 5 minuta.
'Përqindja' është përqindja e moshës së një objekti (që nga modifikimi i fundit) që do të konsiderohet "i kohëve të fundit" ose "i freskët". Për shembull, nëse vazhdimisht ringarkoni ose rifreskoni një faqe interneti për të parë modifikimet më të fundit, Squid mund të marrë në konsideratë që nëse objekti ka arritur, le të themi, 50% të kohës midis vlerave minimale dhe maksimale , ai do ta shkarkojë atë objekt nga interneti përsëri dhe do t'ju japë një kopje të re.
'Max' është limiti mbi ose i barabartë me 'Min' për sa kohë një objekt konsiderohet "i kohëve të fundit ose i freskët". Supozoni se një imazh në një faqe është parë vetëm një herë nga një përdorues; ai objekt ka arritur tashmë kohën e tij minimale , por jo kohën maksimale . Pra, kur të shihet përsëri, do të dorëzohet një kopje e ruajtur në memorien e përkohshme.
Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale
Këto opsione u bënë kryesisht për të injoruar sjelljet e paracaktuara në gjuhë dhe protokolle, në mënyrë që të garantohet përdorimi efektiv i memorjes së fshehtë.
override-expire
Zbaton kohën minimale të një objekti, edhe kur serveri dërgoi një kohë më të shkurtër skadimi (shembull gjëra të tilla si header ose Cache-Control: max-age). Nëse e bëjmë këtë, do të shfaqet një "paralajmërim" duke thënë gjëra të tilla "SHPENZON standardin HTTP" por kjo është vetëm paralajmërime që mund t'i injorojmë. Tani nëse koha që një server dërgon është më e gjatë, kallamarët do të marrin kohën e serverit (skadimi)
override-lastmod
Përforcon kohën minimale të një artikulli, edhe nëse ai artikull është modifikuar së fundmi.
reload-into-ims
Shpjegimi i shkurtër është se parandalon që kur shtypim butonin e rifreskimit ose kur bëjmë një kërkesë pa cache, kallamari do të dërgojë memorien në rast se nuk është "modifikuar që prej" dhe / ose nëse nuk ka "kokë" në faqe.
ignore-reload
Injoroni veprimin e përdoruesve për të shtypur butonin e faqes së ringarkimit ose rifreskimit
ignore-no-store
Injoroni çdo rregull në header për të mos cache, për shembull video
ignore-private
Injoroni çdo rregull në kryefaqjet e përmbajtjes private që nuk duhet të ruhen në memorje, shembull: përmbajtja në facebook.
refresh-ims
Kallamari kontakton serverin, për të garantuar nëse objekti është më i ri. Nëse është atëherë do të dërgojë memorien e përkohshme
store-stale
Kallamarët do të kursejnë të gjitha ato përgjigje, edhe nëse nuk kanë një datë skadence, kjo është shumë jopraktike, pasi ato zakonisht nuk mund të përdoren përsëri. Nëse vendosni ta aktivizoni atë duhet të deklaroni maksimumin e ndenjur = NN
max-stale=NN
Nëse keni aktivizuar sa më sipër, duhet të deklaroni një jetë maksimale për atë përgjigje ose faktor. Kallamari nuk jep objekte të këtij stili por mund ta vërtetojë atë me burimin
Këtu është një tabelë se si funksionon gjendja e freskët "FRESH" sipas vlerave që kemi diskutuar:
- I freskët nëse skadon> tani, përndryshe STALE
- STALE nëse mosha> maks
- I FRESHT l nëse faktori lm <përqind, përndryshe SHITUR
- I freskët nëse mosha <min tjetër SHITJE
Këtu është një shembull konfigurimi për një kompani specifike me shumë hapësirë ​​në disk, pajisje të mira dhe gjerësi bande të mirë
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
Tani, ruajtja në memorje nuk bëhet vetëm në hard disk; ne mund ta ruajmë në memorje edhe në RAM. Kjo vlerë është për çdo proces Squid, kështu që duhet ta merrni parasysh kur përdorni ridrejtues si SquidGuard.
maximum_object_size_in_memory 1024 KB
Madhësia maksimale e objektit në memorje që kallamarët do të ruajnë në RAM. Ju gjithashtu mund të deklaroni një minimum.
memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF
Siç mund ta shihni, njëra është politika për zëvendësimin e cache në memorjen RAM dhe një tjetër në hard disk. Ekzistojnë 2 politika GDSF dhe LFUDA. E para kërkon të përmirësojë përqindjen e goditjeve të memorjes cache, duke pasur shumë objekte të vogla në dorë, e dyta kërkon të kundërtën, ajo i mban objektet në memorje pa marrë parasysh madhësinë e tyre.
Pyetja që imagjinoj se po më bëni në këtë moment është, çfarë përdorimi mund të përdor? Epo, nëse mendoni se në mjedisin tuaj ata bëjnë shumë pyetje dhe pak shkarkime përdorin GDSF nëse përkundrazi ata bëjnë shumë shkarkime dhe pak pyetje LFUDA. Se nëse e rekomandoj LFUDA kur do të bësh, nuk e di, cache në 1TB disk, është më efikase.
maximum_object_size 4 MB
Madhësia maksimale që një objekt mund të ruhet
cache_dir aufs /media/proxy249/cache 100 16 256
Ku do të ruhet cache, vëmendja këtu, e rëndësishme është nëse përdorni ufs, aufs ose diskd, të tre punojnë pak a shumë njësoj, ndryshimi është se aufs dhe diskd punojnë me procese të ndara për të bërë operacionet I / O në diskun e ngurtë dhe shmangni që proceset e kallamarit të varen gjatë këtyre operacioneve, përveç kësaj diskd mund të specifikoni numrin e fijeve që do të keni për këtë detyrë. Unë rekomandoj aufs nëse keni një ekip të mirë.
Madhësia 100 (megabajt), ju mund të vendosni 100000 është pothuajse 100 GB varet nga disponueshmëria juaj. 16 është numri i dosjeve, dhe 256 është numri i nën-dosjeve. Ju mund të luani me të dy vlerat varet nga sa shpejt janë disqet tuaja dhe sa burime keni.
cache_swap_low 90
cache_swap_high 95
Këto opsione janë vlerat zëvendësuese të objekteve, është vlera minimale dhe maksimale si ujëra sipas kallamarëve, ku këta numra janë në përqindje (%), dhe në një memorie shumë të vogël, 5% si kjo tani do të ishin le të themi 300 objekte në sekondë , por në memorje shumë të mëdha do të flisnim për mijëra MB
Epo, kaq për tani. Komentoni dhe merrni në konsideratë edhe ata që më thanë se nuk mund të ruanin në memorje dhe të filtronin faqet HTTPS (SSL) në Squid 3.5 ose më të lartë; do t'jua sjell së shpejti, prandaj qëndroni të sintonizuar me këtë blog.