Кеш кальмарів - частина 2

Squid - це не тільки служба проксі-сервісу та кеш-пам’яті, вона може зробити набагато більше: керувати acl (списками доступу), фільтрувати вміст, вона навіть може виконувати фільтрацію ssl навіть у прозорому режимі (метод проксі-сервера - без необхідності налаштовувати параметри проксі-сервера з ваших браузерів , це як людина посередині, ніхто не знає, що вона там). Тому я зазвичай бачу, як витрачається весь потенціал цієї програми, не знаючи, як налаштувати кожну з її частин.

Зараз найцікавіше, що робить кальмар, - це кеш (на мій погляд). Ви скажете мені, чому кешувати? Причина проста, краще керувати використанням своєї швидкості та пропускної здатності - головне. Подумайте добре, 1000 людей у ​​вашій компанії консультують кожні 5 хвилин, загальні сторінки, Google, Hotmail, Gmail тощо ... так що ви збираєтеся завантажувати зображення, банери, рекламу, HTML-вміст знову і знову, все це статично речі, але вони не змінюються так часто, краще, щоб вони зберігались у вашій локальній мережі, і ви доставляли копію, яку ви вважаєте недавною, у конфігураціях, які ви розглядали.

Як це зробити? Просто з таким реченням:

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

Як я завжди кажу, не вірте усьому, тому я запрошую вас прочитати з офіційного джерела. Рекомендую прочитати посібник цього речення ТУТ

Вирок шаблон_оновлення Завжди буде нашою міткою додавати нові параметри до кешу.

Важливо, що ваші списки кеш-пам’яті мають бути послідовними, оскільки, як тільки він збігається з першим, який відповідає об’єкту, він не буде продовжувати читати інші ваші правила.

Регулярні вирази чутливі до регістру, тому flv не те саме, що FLV, але ви можете цього уникнути, якщо хочете, використовуючи опцію -i . Тоді це виглядало б так оновлення_шаблон -i

'Хв': Це час (хвилини), коли об’єкт буде розглядатися як «нещодавній чи свіжий», і якщо він не має явної позначки «минув». За замовчуванням кальмар рекомендує дорівнювати 0, оскільки деякі динамічні програми можуть поводитись дивно, чисто бла-бла-бла, насправді це значення повинно бути числом, яке ви вважаєте корисним та ефективним для елементів, які ви хочете кешувати, приклад: jpg, 1440 хвилин (на день) мені здається чудовим, це не так, якби зображення допису змінювалися кожні 5 хвилин на сторінці.

"Відсоток" Це відсоток віку об’єкта (з моменту останньої модифікації), який буде вважатися «недавнім або свіжим». Дозвольте мені пояснити, можливо, роблячи постійне перезавантаження або оновлення, щоб побачити останні зміни, які були внесені до веб-сторінки, кальмар міг би розглянути, чи вже є, скажімо, 50% часу, виконаного між хвилин y Макс, повторно завантажте цей об’єкт з Інтернету та надайте нову копію.

'Макс' - це межа вище або дорівнює 'Хв' скільки часу об’єкт вважається «недавнім чи свіжим», припустимо, що зображення якоїсь сторінки користувачем користувався лише один раз, і цей об’єкт вже досяг свого часу хвилин, але не Макс, тоді при повторному запиті буде доставлено копію кешу.

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

Ці варіанти були зроблені здебільшого для ігнорування попередньо встановленої поведінки в мовах та протоколах, щоб гарантувати ефективне використання кеш-пам’яті.

override-expire

Він забезпечує мінімальний час об'єкта, навіть якщо сервер надсилає коротший час закінчення терміну дії (наприклад, такі як заголовок або Кеш-контроль: max-age). Якщо ми зробимо це, з’явиться "попередження", в якому говориться про подібні речі "ПОРУШУЄ стандарт HTTP", але це лише попередження, які ми можемо ігнорувати. Тепер, якщо час, який сервер надсилає, довший, тоді кальмар займе час сервера (закінчення)

override-lastmod

Посилює мінімальний час роботи елемента, навіть якщо цей елемент нещодавно був змінений.

reload-into-ims

Коротке пояснення полягає в тому, що це запобігає тому, що коли ми натискаємо кнопку оновлення або робимо запит без кешу, squid доставить кеш, якщо він не був "змінений з" та / або якщо на сторінці немає "заголовків".

ignore-reload

Ігноруйте дії користувачів, натискаючи кнопку перезавантаження або оновлення сторінки

ignore-no-store

Ігноруйте будь-яке правило в заголовках, щоб не кешувати, наприклад відео

ignore-private

Ігноруйте будь-які правила в заголовках приватного вмісту, які не слід кешувати, приклад: вміст facebook.

refresh-ims

Squid зв’язується з сервером, щоб переконатися, що об’єкт найновіший. Якщо це так, він доставить кеш

store-stale

Кальмар збереже всі ці відповіді, навіть якщо у них немає терміну придатності, це дуже недоцільно, оскільки їх, як правило, не можна використовувати повторно. Якщо ви вирішите його увімкнути, ви повинні оголосити max-stale = NN

max-stale=NN

Якщо ви увімкнули вищезазначене, ви повинні вказати максимальний термін служби для цієї відповіді чи фактора. Кальмар не доставляє об'єкти цього стилю, але може перевірити його з джерелом

Ось таблиця того, як працює стан "СВІЖИЙ" відповідно до обговорених нами значень:

  • СВІЖИЙ, якщо термін дії закінчується> зараз, ще STALE
  • ПРОДАЖ, якщо вік> макс
  • СВІЖИЙ, якщо lm-коефіцієнт <відсоток, інакше 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

Як бачите, одне - це політика заміни кеш-пам'яті в оперативній пам'яті, а інше - на жорсткому диску. Існує 2 правила GDSF та LFUDA. Перший прагне покращити відсоток звернень кешу, маючи під рукою багато дрібних об’єктів, другий - навпаки, зберігає об’єкти в кеш-пам’яті незалежно від їх розміру.

Питання, яке, на мою думку, ви задаєте мені в цей момент, полягає в тому, яку користь я використовую? Ну, якщо ви вважаєте, що у вашому оточенні вони роблять багато запитів і мало завантажень використовують GDSF, якщо навпаки вони роблять багато завантажень і декілька запитів LFUDA. Якщо я рекомендую LFUDA, коли ви збираєтеся робити, я не знаю, кешувати на 1 ТБ диска, це ефективніше.

maximum_object_size 4 MB

Максимальний розмір, який може зберігатись об’єктом

cache_dir aufs /media/proxy249/cache 100 16 256

Де буде зберігатися кеш, тут увага, важливо, якщо ви використовуєте ufs, aufs або diskd, всі 3 працюють більш-менш однаково, різниця полягає в тому, що aufs і diskd працюють з окремими процесами для виконання операцій вводу-виводу на жорсткого диска та уникайте, щоб процеси кальмарів зависали під час цих операцій, додатково на diskd ви можете вказати кількість потоків, які ви будете мати для цього завдання. Я рекомендую aufs, якщо у вас хороша команда.

Розмір 100 (мега), ви можете поставити 100000, це майже 100 ГБ, залежить від вашої доступності. 16 - це кількість папок, а 256 - кількість підпапок. Ви можете грати з обома значеннями, це залежить від того, наскільки швидкі ваші диски та скільки у вас ресурсів.


cache_swap_low 90
cache_swap_high 95

Ці параметри є значеннями заміни об’єкта, це мінімальне та максимальне значення як водяний знак відповідно до кальмара, де ці цифри знаходяться у відсотках (%), а в дуже маленькому кеші 5%, як це зараз, буде, скажімо, 300 об'єктів в секунду, але в дуже великих кешах ми говоримо про тисячі МБ

Ну, там я вас залишаю, це поки що, коментуйте А також беру до уваги тих, хто сказав мені, що вони не можуть кешувати та фільтрувати сторінки https (SSL) у squid 3.5 або вище, я незабаром приведу їх до вас, стежте за цим блогом.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Інж. Хосе Альберт - сказав він

    Відмінне доповнення до першої частини!

    Існує багато літератури про кальмарів, але перейти до суті у найбільш практичних варіантах з відповідними поясненнями та можливими сценаріями реального використання не завжди є під рукою!

    Як завжди, я з нетерпінням чекаю третьої його частини!

    1.    Броди -Далле - сказав він

      Дякуємо за ваш коментар. Це правильно, коротке пояснення всіх відповідних елементів та деякі найкращі практики. Однак я завжди уважний до ваших коментарів та власного досвіду.

  2.   артрус - сказав він

    Привіт, у мене проблема з оновленнями Windows та антивірусом. У мене в закладі приблизно 120 шт. Не могли б ви дати мені уявлення про те, як покращити цю ситуацію. Дякуємо за допомогу та вітаємо зі статтею.

    1.    Броди -Далле - сказав він

      Привіт, дякую за участь .. ну, якщо я можу вам допомогти, але добре поясніть, у чому ваша проблема, ви не можете завантажити оновлення? Ви вставили проксі-сервер у параметри Інтернету і те саме в параметри проксі-сервера вашого браузера? Перевірили порти? Або ви хочете кешувати ці оновлення?

      1.    артрус - сказав він

        Мені потрібно, щоб кожен раз, коли комп’ютер завантажує оновлення для Windows або антивірусу, він залишався в кеші протягом приблизно одного місяця, таким чином я хотів би заощадити пропускну здатність, оскільки щоранку кожен комп’ютер починає завантажувати однаково оновлює кожен, і зв’язок насичується.

        Спасибі за вашу допомогу.

    2.    Маріо - сказав він

      Сервер із Squid працює, оскільки це прості незашифровані http-завантаження. Інші рішення для кешування - це WSUS та Altiris, звичайні для компаній.

      1.    артрус - сказав він

        Дякую Маріо, я буду це пам’ятати.

    3.    Броди -Далле - сказав він

      добре, готовий, я розумію, перевірте це посилання. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. щоб кешувати антивірус, потрібно знати, звідки завантажуються оновлення та під яким розширенням (приклад .exe), та кешувати його ...

  3.   артрус - сказав він

    Спасибі за вашу допомогу.

  4.   Erick - сказав він

    Доброго ранку, друзі, не могли б ви підтримати мене у моїй справі. оскільки я маю squid 2.7 .STABLE9 на debian 6, і у мене все налаштовано, і при його монтажі в середовищі 10 шт я отримую звичайну пошту, проблема полягає в тому, що я встановлюю його на 90 шт, це триває лише кілька секунд роботи а звідти всі вони залишаються без Інтернету. Не могли б ви підтримати мене?

  5.   ЖОЗЕ РІВАС - сказав він

    Відмінне пояснення, базове, але дуже чітке та точне. Особисто найкраще пояснення, яке мені вдалося прочитати.
    У мене питання, чи можна кешувати програми для Android, такі як apk та xapk?
    І який би був правильний спосіб налаштування динамічного кешу незалежно від походження файлів?
    Я використовую pfSense 2.4.5.