- •Принципы работы арасне
- •Директивы сервера
- •Блочные директивы
- •Запуск нескольких экземпляров Apache
- •Виртуальные хосты
- •Управление виртуальными хостами
- •Перезапуск Apache
- •Использование файлов .Htaccess
- •Общий шлюзовый интерфейс (cgi)
- •Установка переменных среды
- •Браузеры
- •Обработчики
- •Аутентификация
- •Команды allow и deny
- •Выбор языка
- •Поддержка русскоязычных кодировок,
- •Переадресация
- •Сенсорные изображения
- •Кэширование
- •Var Значение этого атрибута — имя переменной.
Кэширование
Помимо уже упомянутых выше функций, 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. Единственный атрибут этой команды:
