Кальмардын кэши - 2-бөлүк

Squid прокси жана кэш кызматы гана эмес, ал дагы көп нерсени жасай алат: acl (мүмкүндүк тизмелери), мазмунун чыпкалоо, ал тургай ssl чыпкасын тунук режимде (прокси ыкмасы - прокси орнотууларында конфигурация кылбастан) жасай алат. алардын браузерлеринен ортодогу адамга окшош, ал жерде эч ким билбейт). Ошентип, мен ар бир бөлүктү конфигурациялоону билбей, бул колдонмонун толук потенциалы кандайча текке кеткенин көрүп турам.

Эми кальмардын кызыктуусу - бул кэш (менин оюмча). Сиз эмне үчүн кэшти айтып бересиз? Мунун себеби жөнөкөй, ылдамдыгыңызды жана өткөрмө жөндөмүңүздү колдонууну башкара билүү керек. Жакшылап ойлонуп көрсөңүз, ар бир 1000 мүнөттө 5ден ашуун адамдан консультация алуучу компанияңыздагы XNUMX адам, жалпы баракчалар, Google, Hotmail, Gmail ж.б. ... сүрөттөрдү, баннерлерди, жарнамаларды, html мазмунун кайра-кайра жүктөп алуу үчүн, булардын бардыгы туруктуу нерселер, жок Алар тез-тез өзгөрүп турат, аларды жергиликтүү тармакта сактап койсоңуз болот, жана сиз өзүңүз караштырган конфигурациялардын ичинде акыркы деп эсептеген көчүрмөсүн жеткирип берсеңиз болот.

Төмөнкү сүйлөм менен жөнөкөй:

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

Мен ар дайым айткандай, баарына ишенбегиле, андыктан расмий булактан окууга чакырам. Ушул сүйлөмдүн колдонмосун окуп чыгууну сунуштайм ЖЕРДЕ

Сүйлөм жаңыртуу_үлгү Кэшке жаңы параметрлерди кошуу биздин энбелгибиз болот.

Маанилүүсү, сиздин кэш тизмелериңиз ырааттуу болушу керек, анткени объект менен дал келген биринчисине дал келгенден кийин, ал башка эрежелериңизди окуй бербейт.

Туруктуу сөз айкаштары чоң-кичине сезгич, ошондуктан flv FLV менен бирдей эмес, бирок сиз кааласаңыз, параметрди колдонуу менен -i . Ошондо мындай болмок refresh_pattern -i

'Мин': объект "акыркы же жаңы" деп карала турган убакыт (мүнөт) жана эгерде анын "мөөнөтү бүттү" деген белгиси жок болсо. Демейки боюнча, кальмар 0 деп сунуштайт, анткени айрым динамикалуу колдонмолор таң калыштуу иштей алат, таза бла-бла-бла, чындыгында бул маани сиз кэш кылгыңыз келген элементтер үчүн пайдалуу жана натыйжалуу деп эсептеген сан болушу керек, Мисалы: jpg, мага 1440 мүнөт (күнүнө) жакшы көрүнөт, бир баракчанын сүрөттөрү ар 5 мүнөт сайын өзгөрүп турушу жакпайт.

"Пайыз" Бул "акыркы же жаңы" деп эсептелген объекттин жаш курагынын пайызы (акыркы модификациядан). Мага түшүндүрүп берейин, балким, веб-баракчага киргизилген акыркы өзгөртүүлөрдү көрүү үчүн тынымсыз жүктөө же жаңыртуу, кальмар эгерде буга чейин, мисалы, убакыттын 50% түзгөн болсо, карап көрүшү мүмкүн. мүн y макс, ошол объектти Интернеттен кайра жүктөп алып, жаңы көчүрмөсүн бериңиз.

'Max' жогору же барабар болгон чеги болуп саналат 'Min' объект качанкыга чейин «акыркы же жаңы» деп эсептелет, кээ бир барактын сүрөтүн колдонуучу бир жолу гана сурады, ал объект өз убактысына жетти дейли. мүн, бирок макс, андан кийин дагы бир жолу суралганда, кэштин көчүрмөсү жеткирилет.

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

Бул параметрлер кэшти натыйжалуу пайдаланууга кепилдик берүү үчүн, тилдерде жана протоколдордо алдын-ала түзүлгөн жүрүм-турумдарды эске албоо максатында жасалган.

override-expire

Бул сервердин жарамдуулук мөөнөтү кыскараак болсо дагы, объектинин минималдуу убактысын колдонот (мисалы, header же Cache-Control: max-age сыяктуу нерселер). Эгер мындай кылсак, анда "HTTP стандартын бузат" деген сыяктуу "эскертүү" пайда болот, бирок бул биз көңүл бурбай коё турган эскертүүлөр. Эми сервер жиберген убакыт узак болсо, анда кальмар сервердин убактысын алат (мөөнөтү бүтөт)

override-lastmod

Жакында өзгөртүлгөн болсо дагы, бир нерсенин минималдуу убактысын бекемдейт.

reload-into-ims

Кыскача түшүндүрмөсү, биз жаңыртуу баскычын басканда же кэшти жок деп сурасак, кальмар кэшти "бери өзгөрүлбөсө" жана / же баракта "аталыштар" жок болсо, жеткирет.

ignore-reload

Баракчаны кайра жүктөө же жаңыртуу баскычын басуу үчүн колдонуучулардын аракетине көңүл бурбаңыз

ignore-no-store

Видеолор сыяктуу, мисалы, кэштештирбөө үчүн, кайсы бир эрежеге көңүл бурбаңыз

ignore-private

Кэштелбеши керек болгон жеке контенттин аталыштарындагы эрежелерди эске албаңыз, мисалы: facebook content.

refresh-ims

Squid объекттин эң жаңы экендигин текшерүү үчүн сервер менен байланышат. Эгерде ал бар болсо, анда ал кэшти жеткирет

store-stale

Squid бул жооптордун бардыгын сактайт, эгерде алардын жарактуулук мөөнөтү жок болсо дагы, бул өтө практикалык эмес, анткени аларды кайра колдонууга болбойт. Эгер сиз аны иштетүүнү чечсеңиз, max-stale = NN деп жарыялашыңыз керек

max-stale=NN

Эгер жогоруда айтылгандарды иштеткен болсоңуз, анда ошол жооп же фактор үчүн максималдуу өмүр бою жарыялашыңыз керек. Squid бул стилдеги объектилерди жеткирбейт, бирок аны булагы менен тастыктай алат

Бул жерде жаңы "FRESH" абалы биз талкуулаган баалуулуктарга ылайык кандай иштээри жөнүндө таблица келтирилген:

  • Fresh, эгер мөөнөтү өтүп кетсе> азыр, болбосо STALE
  • STALE if age> max
  • FRESH if lm-factor <пайыз, болбосо STALE
  • FRESH if age <min else STALE

Дисктеги мейкиндиги, жабдуулары жана өткөрүмдүүлүгү жакшы конкреттүү компаниянын мисалынын конфигурациясы

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

Эми кэш катуу дискте гана эмес, биз ошондой эле кочкордун эс тутумун кэштей алабыз, анткени бул ар бир кальмар процесси үчүн колдонулат, андыктан ушул сыяктуу багыттагычтарды колдонууда аны эске алышыңыз керек squidGuard

maximum_object_size_in_memory 1024 KB

Кальмардын оперативдик эс тутумунда сакталуучу эстутумдагы объектинин максималдуу өлчөмү. Ошондой эле минимумду жарыялай аласыз.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Көрүнүп тургандай, бири RAM эс тутумундагы, экинчиси катуу дисктеги кэшти алмаштыруу саясаты. GDSF жана LFUDA эки саясаты бар. Биринчиси, кэштеги хиттердин пайызын жакшыртууга аракет кылат, колунда көптөгөн майда объектилер бар, экинчиси, тескерисинче, объектилердин көлөмүнө карабастан, аларды кэште сактайт.

Ушул тапта сиз мага берип жаткан элестеткен суроом, мен эмнени колдонуп жатам? Эгер сиздин чөйрөңүздө алар көптөгөн суроолорду жасашат жана бир нече жүктөөлөр GDSF колдонушат, эгерде алар тескерисинче көп жүктөп алса жана бир нече LFUDA суроону жасашса. Эгер сиз LFUDA сунуштай турган болсом, анда мен билбейм, 1 TB дисктеги кэшти, натыйжалуу болот.

maximum_object_size 4 MB

Объекттин сакталышы мүмкүн болгон эң чоң өлчөм

cache_dir aufs /media/proxy249/cache 100 16 256

Кэш сактала турган жерде көңүл буруу керек, эгерде сиз UFS, aufs же diskd колдонсоңуз, анда үчөө тең аздыр-көптүр бирдей иштесе, айырмачылыгы, aufs жана diskd өзүнчө процесстер менен иштеп, катуу дискте I / O операцияларын жасашат. Ушул операциялар учурунда кальмар процесстери илинип калбасын, сиз дагы ушул милдетти аткара турган жиптердин санын белгилей аласыз. Эгерде сизде жакшы команда болсо, мен aufs компаниясын сунуштайм.

Өлчөмү 100 (мегабайт), 100000 койсоңуз болот экениңизге жараша дээрлик 100 ГБ 16 - папкалардын саны, ал эми 256 - под папкалардын саны. Эки баалуулук менен тең ойной аласыз, дисктериңиздин ылдамдыгынан жана ресурстарыңыздын көптүгүнөн.


cache_swap_low 90
cache_swap_high 95

Бул варианттар объектини алмаштыруу мааниси болуп саналат, бул кальмарга ылайык суу белгиси катары минималдуу жана максималдуу маани, ал жерде бул сандар пайыз менен (%), ал эми өтө кичинекей кэште, ушул сыяктуу 5% ушул тапта секундасына 300 объект деп айтсак болот. , бирок өтө чоң кэштерде биз миңдеген МБ жөнүндө сөз кылмакпыз

Ооба, мен сени таштап кетем, азырынча, комментарий бер Ошондой эле, https (SSL) баракчаларын squid 3.5 же андан жогору деңгээлде кэштей албай, чыпкалай албайм дегендерди эске алыңыз, аларды жакында сизге алып келем, ушул блогду күтүп туруңуз.


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

11 комментарий, өзүңүздүкүн калтырыңыз

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт. Милдеттүү талаалар менен белгиленет *

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.

  1.   Инг. Хосе Альберт ал мындай деди:

    Биринчи бөлүктү мыкты толуктоо!

    Сквид жөнүндө көптөгөн адабияттар бар, бирок алардын түшүндүрмөлөрү жана мүмкүн болушунча чыныгы сценарийлери менен эң практикалык варианттарындагы чекитке жетүү ар дайым эле боло бербейт!

    Адаттагыдай эле, анын үчүнчү бөлүгүн чыдамсыздык менен күтөм!

    1.    BrodyDalle ал мындай деди:

      Сиздин комментарий үчүн рахмат. Бул туура, бардык тиешелүү элементтердин кыскача түшүндүрмөсү жана мыкты тажрыйбаны орнотуу. Бирок, мен ар дайым сиздин сын-пикирлериңизге жана өз тажрыйбаңызга көңүл бурам.

  2.   artus ал мындай деди:

    Салам, менде windows жаңыртуусу жана антивирус көйгөйү бар. Менин мекемесимде болжол менен 120 даана бар. Ушул кырдаалды кантип оңдой тургандыгы жөнүндө түшүнүк бере аласызбы? Жардамыңыз үчүн рахмат жана макала менен куттуктайм.

    1.    BrodyDalle ал мындай деди:

      Саламатсызбы, катышканыңыз үчүн рахмат .. эгер мен сизге жардам бере алсам, бирок сиздин көйгөйүңүздү жакшы түшүндүрүп берсеңиз, жаңыртууларды жүктөй албай жатасызбы? Интернет параметрлерине прокси койдуңуз, браузериңиздин прокси параметрлерине дагы ошондой койдуңузбу, портторду текшердиңизби? Же ошол жаңыртууларды кэш кылгыңыз келеби?

      1.    artus ал мындай деди:

        Мага бир нерсе керек: компьютер терезелерди же антивирустук жаңыртууларды жүктөп алган сайын, ал кэште бир айга жакын калат, ошентип мен өткөрмө жөндөмдүүлүктү сактап калгым келет, анткени ар күнү эртең менен бардык компьютерлер бирдей жаңыртууларды жүктөй башташат жана байланыш каныккан.

        Жардамыңыз үчүн рахмат.

    2.    Mario ал мындай деди:

      Squid бар сервер иштейт, анткени алар жөнөкөй шифрленбеген http жүктөөлөрү. Кэш үчүн башка чечимдер WSUS жана Altiris, компанияларда кадимкидей.

      1.    artus ал мындай деди:

        Рахмат Марио мен аны эсимде сактайм.

    3.    BrodyDalle ал мындай деди:

      макул даяр, түшүнүп турам, бул шилтемени текшериңиз. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. антивирусту кэштеш үчүн, жаңыртуулар кайдан жана кайсы кеңейтүү менен жүктөлгөнүн билип алышыңыз керек (.exe мисалы) жана аны кэштеш керек ...

  3.   artus ал мындай деди:

    Жардамыңыз үчүн рахмат.

  4.   Erick ал мындай деди:

    Кутман таң достор, менин ишим боюнча мени колдоп берсеңиз болот. анткени менде дебиан 2.7да кальмар 9 .STABLE6 бар жана менде бардыгы конфигурацияланган жана аны 10 даана шартта орноткондо кадимки почта келип калат, мен аны 90 даанага орноткондо көйгөй келип чыгат, ал бир нече секунда иштеп калат жана ошол жерден бардыгы алар интернетсиз калышты. Сиз мени колдой аласызбы?

  5.   ЖОСЕ РИВАС ал мындай деди:

    Мыкты түшүндүрмө, негизги, бирок абдан так жана так. Жеке мен мыкты түшүндүрмөнү окуй алдым.
    Менин суроом бар, apk жана xapk сыяктуу Android тиркемелерин кэштөөгө болобу?
    Файлдардын келип чыгышына карабастан, динамикалык кэшти конфигурациялоонун туура жолу кандай болот?
    Мен pfSense 2.4.5 колдоном.