Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
squid.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1.45 Mб
Скачать

7.7 Почему так мало запросов tcp_ims_miss попадают в лог?

Когда Squid получает запрос If-Modified-Since, то запрос не будет передан, пока объект не потребует обновления согласно правил refresh_pattern. Если запрос не требует обновления, он будет записан в лог как TCP_REFRESH_HIT или TCP_REFRESH_MISS.

Если запрос не передается, Squid отвечает на IMS-запрос согласно статусу объекта в его кеше. Если время модификации тоже самое, то Squid возвращает TCP_IMS_HIT. Если время модификации отличается, Squid возвращает TCP_IMS_MISS. В большинстве случаев закешированный объект не будет изменен, поэтому результат будет TCP_IMS_HIT. Squid вернет TCP_IMS_MISS только тогда, когда другой клиент получит более новую версию объекта, которая будет сохранена в кеше.

7.8 Как мне заставить Squid не кешировать некоторые сервера или url-ы?

В Squid-2 используйте опцию no_cache, чтобы указать некешируемые объекты. К примеру, следующее сделает все ответы серверов из сети 10.0.1.0/24 некешируемыми:

acl Local dst 10.0.1.0/24

no_cache deny Local

Этот пример делает некешируемыми все URL-лы с '.html':

acl HTML url_regex .html$

no_cache deny HTML

Этот пример заставляет не кешироваться определенный URL:

acl XYZZY url_regex ^http://www.i.suck.com/foo.html$

no_cache deny XYZZY

В этом примере указано, что ничего не должно кешироваться с 8 до 11 утра:

acl Morning time 08:00-11:00

no_cache deny Morning

В Squid-1.1 за то, кешируется объект или нет отвечают опции cache_stoplist и cache_stoplist_pattern. Можете добавить к примеру:

cache_stoplist my.domain.com

Указать некешируемый объект по IP-адресу труднее. На 1.1 patch page лежит патч, называемый no-cache-local.patch, который изменяет действие local_ip и local_domain таким образом, что совпавшие запросы НЕ КЕШИРУЮТСЯ, вдобавок они скачиваются напрямую с сервера.

7.9 Как я могу удалить и вновь создать кеш?

Удалить существующую директорию кеша не так уж трудно. К сожалению, вы не можете просто изменить и squid.conf и заставить прокси его пречитать. Вы не можете прекратить использованиеcache_dir пока Squid запущен. Также имейте ввиду, что Squid требует хотя бы одной cache_dir для работы.

  1. Отредактируйте squid.conf, удалив или закоментировав сроку cache_dir для директории кеша, которую вы хотите удалить.

  2. Если вы не имете ни одной строки cache_dir в вашем squid.conf, то Squid-ом используется значение по умолчанию. Вам необходимо добавить новую строку cache_dir, т.к. Squid будет продолжать использовать значение по умолчанию. Вы можете добавить небольшую, временную директорию, к примеру:

  3. /usr/local/squid/cachetmp ....

Если вы добавили новую cache_dir, вы должны запустить squid -z, чтобы ее инициализировать.

  1. Запомните, что вы не можете удалить директорию кеша, когда процесс Squid запущен; вы не можете просто презапустить squid. Вы должны его остановить:

  2. squid -k shutdown

  3. Когда Squid завершил работу, вы можете немедленно запустить его снова. Т.к. вы удалили старую cache_dir из squid.conf, Squid не будет пытаться получить к ней доступ. Если вы используете скрипт RunCache, Squid перезапустится автоматически.

  4. Теперь Squid больше не использует директорию кеша, которую вы удалил из файла конфигурации. Вы пожете проверить это, используя данные о "Store Directory" в вашем кеш-менеджере. В командной строке напечатайте:

  5. client mgr:storedir

  6. Т.к. Squid не использует директорию кеша , вы можете сделать rm -rf для нее, отформатировать диск, создать новую файловую систему лиюбо что-то еще.

Процедура, похожая на создание директории заново.

  1. Отредактируйте squid.conf и добавьте новую строку cache_dir.

  2. Инициализируйте новую директорию, запустив

  3. % squid -z

Замечание: it is safe to run this even if Squid is already running. squid -z will harmlessly try to create all of the subdirectories that already exist.

  1. Перезапустите Squid

  2. squid -k reconfigure

В отличие от удаления, вы можете добавить новую директорию, когда Squid уже запущен.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]