Пункт 122. Модуль Apache mod_cache_disk
mod_cache_disk
реализует дисковый менеджер хранения для mod_cache
.
Заголовки и тела кэшированных ответов хранятся отдельно на диске в структуре каталогов, полученной из хэша md5 кэшированного URL-адреса.
Несколько ответов на согласование контента могут храниться одновременно, однако кэширование частичного контента пока не поддерживается этим модулем.
Обновления атомарного кэша как для файлов заголовка, так и для файлов тела достигаются без необходимости блокировки за счет сохранения номера устройства и индексного дескриптора файла тела в файле заголовка. Побочным эффектом этого является то, что записи кэша, перемещенные вручную в кэш, будут игнорироваться.
Инструмент htcacheclean
предоставляется для отображения кэшированных URL-адресов, удаления кэшированных URL-адресов или для поддержания размера дискового кеша в пределах размера и/или ограничений по инодам. Инструмент можно запускать по запросу или демонизировать, чтобы обеспечить непрерывный мониторинг размеров каталогов.
Примечание:
mod_cache_disk
требуются службы
mod_cache
, которые должны быть загружены до mod_cache_disk.
Примечание:
mod_cache_disk
использует функцию sendfile для обслуживания файлов из кэша, если она поддерживается платформой и включена с помощью EnableSendfile
. Однако конфигурация для каждого каталога и .htaccess
EnableSendfile
игнорируется,
mod_cache_disk
поскольку соответствующие настройки недоступны для модуля, когда запрос обслуживается из кеша.
Директива CacheDirLength
Описание: | Количество символов в именах подкаталогов |
Синтаксис: | CacheDirLength length |
По умолчанию: | CacheDirLength 2 |
Контекст: | конфигурация сервера, виртуальный хост |
Положение дел: | Расширение |
Модуль: | mod_cache_disk |
Директива CacheDirLength
устанавливает количество символов для каждого имени подкаталога в иерархии кэша. Его можно использовать в сочетании с CacheDirLevels
для определения приблизительной структуры иерархии вашего кэша.
Высокое значение в CacheDirLength
сочетании с низким значением CacheDirLevels
приводит к относительно плоской иерархии с большим количеством подкаталогов на каждом уровне.
Результат CacheDirLevels
* CacheDirLength
не должен быть больше 20.
Директива CacheDirLevels
Описание: | Количество уровней подкаталогов в кеше. |
Синтаксис: | CacheDirLevels levels |
По умолчанию: | CacheDirLevels 2 |
Контекст: | конфигурация сервера, виртуальный хост |
Положение дел: | Расширение |
Модуль: | mod_cache_disk |
Директива CacheDirLevels
устанавливает количество уровней подкаталога в кеше. Кэшированные данные будут сохранены на несколько уровней каталога ниже CacheRoot
каталога.
Высокое значение в CacheDirLevels
сочетании с низким значением CacheDirLength
приводит к относительно глубокой иерархии с небольшим количеством подкаталогов на каждом уровне.
Результат CacheDirLevels
*
CacheDirLength
не должен быть больше 20.
Директива CacheMaxFileSize
Описание: | Максимальный размер (в байтах) документа, помещаемого в кэш |
Синтаксис: | CacheMaxFileSize bytes |
По умолчанию: | CacheMaxFileSize 1000000 |
Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
Положение дел: | Расширение |
Модуль: | mod_cache_disk |
Директива CacheMaxFileSize
устанавливает максимальный размер документа в байтах для хранения в кэше.
Кэшемаксфилесизизе 64000
Директива CacheMinFileSize
Описание: | Минимальный размер (в байтах) документа для помещения в кэш |
Синтаксис: | CacheMinFileSize bytes |
По умолчанию: | CacheMinFileSize 1 |
Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
Положение дел: | Расширение |
Модуль: | mod_cache_disk |
Директива CacheMinFileSize
устанавливает минимальный размер в байтах для документа, который рассматривается для хранения в кэше.
CacheMinFileSize 64
Директива CacheReadSize
Описание: | Минимальный размер (в байтах) документа для чтения и кэширования перед отправкой данных вниз по течению. |
Синтаксис: | CacheReadSize bytes |
По умолчанию: | CacheReadSize 0 |
Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
Положение дел: | Расширение |
Модуль: | mod_cache_disk |
Директива CacheReadSize
устанавливает минимальный объем данных в байтах, которые должны быть прочитаны из серверной части перед отправкой данных клиенту. Значение по умолчанию, равное нулю, приводит к тому, что все считанные данные любого размера передаются вниз по течению клиенту сразу же по мере их поступления. Установка более высокого значения приводит к тому, что кэш диска буферизует по крайней мере это количество перед отправкой результата клиенту. Это может повысить производительность при кэшировании контента с обратного прокси-сервера.
Эта директива вступает в силу только тогда, когда данные сохраняются в кэше, в отличие от данных, которые обслуживаются из кэша.
Кэшреадсизе 102400
Директива CacheReadTime
Описание: | Минимальное время (в миллисекундах), которое должно пройти при чтении, прежде чем данные будут отправлены вниз по течению. |
Синтаксис: | CacheReadTime milliseconds |
По умолчанию: | CacheReadTime 0 |
Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
Положение дел: | Расширение |
Модуль: | mod_cache_disk |
Директива CacheReadTime
устанавливает минимальное количество прошедшего времени, которое должно пройти перед попыткой отправить данные нижестоящему клиенту. В течение периода времени данные будут буферизованы перед отправкой результата клиенту. Это может повысить производительность при кэшировании контента с обратного прокси-сервера.
Значение по умолчанию, равное нулю, отключает эту опцию.
Эта директива вступает в силу только тогда, когда данные сохраняются в кэше, в отличие от данных, которые обслуживаются из кэша. Рекомендуется использовать эту опцию вместе с
CacheReadSize
директивой, чтобы гарантировать, что сервер не будет чрезмерно буферизовать, если данные будут поступать быстрее, чем ожидалось.
Кэшреадтиме 1000
Директива CacheRoot
Описание: | Корень каталога, в котором хранятся файлы кеша |
Синтаксис: | CacheRoot directory |
Контекст: | конфигурация сервера, виртуальный хост |
Положение дел: | Расширение |
Модуль: | mod_cache_disk |
Директива CacheRoot
определяет имя каталога на диске, в котором будут храниться кэш-файлы. Если mod_cache_disk
модуль был загружен или скомпилирован на сервере Apache, эта директива должна быть определена. Непредоставление значения для CacheRoot
приведет к ошибке обработки файла конфигурации. Директивы CacheDirLevels
и CacheDirLength
определяют структуру каталогов в указанном корневом каталоге.
CacheRoot c:/cacheroot