Скачиваний:
107
Добавлен:
01.05.2014
Размер:
329.22 Кб
Скачать

Кэширование

Помимо уже упомянутых выше функций, proxy-сервер выполняет кэширование данных, получаемых из Web. Это делается с целью более экономного использования линий и увеличения пропускной способности сетей мировых телефонных систем, печально известных своей перегруженностью, и, следовательно, для уменьшения времени доступа к серверу.

Проиллюстрировать применение этой функции поможет директива CacheRoot, заблаговременно помещенная в приведенный выше Config-файл, в сочетании с кэш-каталогом, для которого установлены надлежащие права доступа. При обращении к Web-серверу Apache заносит в этот каталог кэшируемые файлы, чтобы при повтором обращении к той же странице сервера извлечь соответствующий файл из кэша. Ниже приводится ряд директив, предназначенных для оптимизации кэширования.

CacheSize <объем в килобайтах (по умолчанию: 5)>

Эта директива устанавливает объем кэша в килобайтах. Сохранить можно и больше, однако при сборке мусора количество сохраненной в кэше информации уменьшается до установленного этой директивой объема.

CacheGeInterval <часы (по умолчанию: никогда)>

Этой директивой задается периодичность (в часах) проверки кэша и осуществления сбора мусора на сервере Apache, если количество данных превышает объем, указанный в директиве CacheSize.

CacheMaxExpire <часы (по умолчанию: 24)>

Данная директива указывает, как долго сохраняются кэшированные документы. По истечении заданного в этой директиве времени документ удаляется из кэша, даже если его собственный срок хранения еще не истек.

CacheLastModifiedFactor <коэффициент (по умолчанию: 0.1)>

Если документ не имеет времени истечения срока хранения, то устанавливается его приблизительное значение, определяемое путем умножения времени последнего изменения документа на коэффициент. После этого вступает в действие директива CacheMaxExpire.

CacheDefaultExpire <часы (по умолчанию: 1)>

Если документ выбирается средствами протокола, который не поддерживает время истечения срока хранения, используется значение, указанное в данной директиве. Директива CacheMaxExpire его не отменяет.

CacheDirLevels <значение (по умолчанию: 3)>

CacheDirLength <значение (по умолчанию: 1)>

Имена файлов, сохраняемых в кэше, представляют собой хеши URL. Имя файла разбивается на CacheDirLevels каталогов, причем на имя каждого каталога отводится CacheDirLength символов. Этим обеспечивается эффективность поиска файлов (одномерная структура в большинстве UNIX-систем работает очень медленно). Так, например:

CacheDirLeveis 3

CacheDirLength 2

означает, что хеш abcdefghijk преобразуется в ab/cd/ef/ghijk.

NoCache < [хост 1 домен] [хост [домен]. ..>

Эта директива указывает список разделенных пробелами имен хостов и (или) доменов, из которых полученные документы не кэшируются.

Настройка

Кэш-каталог для proxy-сервера следует настраивать весьма аккуратно. Для этого каталога следует указать владельца nobody из группы nogroup, так как к нему будет обращаться именно эта незначительная личность.

Средства включения на стороне сервера

Цель использования этих средств — обеспечить помещение в находящиеся на сервере документы операторов, реализующих выполнение некоторых действий. Те же результаты можно получить с помощью CGI-сценариев — как сценариев командного процессора, так и специально написанных С-программ — но средства включения на стороне сервера в большинстве случаев позволяют выполнить поставленную задачу с гораздо меньшими затратами. Обратимся к примеру:

Jser webuser

Group webgroup

ServerName www.rnyhost.com

DocumentRoot /usr/www/htdocs

AccessConfig /dev/null

ResourceConfig /dev/null

AddHandier server-parsed shtml

Ключевой строкой является: Add Handler server-parsed shtml

shtmlуказывает на расширение соответствующих файлов в .../htdocs. Мы могли бы с таким же успехом использовать слова brian или #dog_run главное, чтобы в файле с соответствующей командой и в файле конфигурации указывалось одно и то же расширение. Как обычно, если что-то не в порядке, следует обратиться к файлу error_log. Сообщения об ошибках, передаваемые клиенту, как правило, неинформативны, потому что их читают за тридевять земель от сервера, где ничего полезного по этому поводу сделать нельзя.

Весь фокус состоит в том, что в Web-документы вставляются специальные строки, которые Apache в процессе работы распознает, анализирует и заменяет динамически формируемыми сообщениями. Для таких строк намеренно был определен необычный синтаксис, чтобы их нельзя было ни с чем спутать. Синтаксис этих команд следующий:

< !— #элемент атрибут=значение атрибут=значение ... —>

Далее приводится перечень возможных команд:

config

Эта команда управляет различными аспектами синтаксического анализа. Ниже приведены ее допустимые атрибуты:

errmsg

Значением является сообщение, которое посылается клиенту в случае, если в процессе синтаксического анализа документа возникает ошибка.

sizefmt

Этим атрибутом задается формат, который используется при отображении объема файла. Допустимые значения: bytes (байты), abbrev (килобайты или мегабайты, смотря по обстоятельствам).

timefmt

Значение этого атрибута — строка, используемая библиотечной программой strftimeO при выводе значений даты.

echo

Эта команда выдает одну из переменных include, определенных ниже. Если эта переменная не установлена, будет выдано слово none. Для всех значений даты используется формат, установленный текущим значением атрибута timefmt. Единственный атрибут этой команды:

Соседние файлы в папке Лекции по сетям в формате doc