Кэширование · 2 min read · Jan 01, 2026

Кэширование с помощью mod_cache Apache на Debian Etch

Кэширование с помощью mod_cache Apache на Debian Etch

Версия 1.0
Автор: Фалко Тимме

Эта статья объясняет, как вы можете кэшировать содержимое вашего веб-сайта с помощью mod_cache Apache на Debian Etch. Если у вас есть динамический веб-сайт с высоким трафиком, который генерирует множество запросов к базе данных при каждом запросе, вы можете значительно снизить нагрузку на сервер, кэшируя ваше содержимое на несколько минут или более (это зависит от того, как часто вы обновляете ваше содержимое).

Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

Я предполагаю, что у вас есть рабочая установка Apache2 (Apache 2.2.x - до этой версии mod_cache считается экспериментальным) из репозиториев Debian - версия Apache в репозиториях Debian Etch составляет 2.2.3, так что вы должны быть готовы к работе.

Я использую корневую директорию /var/www для моего тестового виртуального хоста - вы должны настроить это, если ваша корневая директория отличается.

2 Включение mod_cache

mod_cache имеет два подсистемы, которые управляют хранилищем кэша, mod_disk_cache (для хранения содержимого на жестком диске) и mod_mem_cache (для хранения содержимого в памяти, что быстрее, чем кэширование на диске). Решите, какой из них вы хотите использовать, и продолжайте либо с главы 2.1 (mod_disk_cache), либо 2.2 (mod_mem_cache).

2.1 mod_disk_cache

Конфигурация mod_disk_cache хранится в /etc/apache2/mods-available/disk_cache.conf, так что давайте отредактируем этот файл:

vi /etc/apache2/mods-available/disk_cache.conf

Убедитесь, что вы раскомментировали строку CacheEnable disk /, чтобы минимальная конфигурация выглядела следующим образом:

| # a2enmod-note: needs-configuration CacheRoot /var/cache/apache2/mod_disk_cache # Если вы включаете кэширование на диске, вам нужно использовать htcacheclean из пакета # apache2-utils, чтобы убедиться, что кэш не растет бесконечно. # См. страницу man htcacheclean для получения подробной информации. # В настоящее время в пакете Debian нет механизма для автоматического запуска htcacheclean, # но планируется добавить такой механизм в будущем. CacheEnable disk / CacheDirLevels 5 CacheDirLength 3 |

Вы можете найти объяснения для этих параметров конфигурации и дальнейшие параметры конфигурации на http://httpd.apache.org/docs/2.2/mod/mod_disk_cache.html.

Теперь мы можем включить mod_cache и mod_disk_cache:

a2enmod cache
a2enmod disk_cache

/etc/init.d/apache2 force-reload

Чтобы убедиться, что наша директория кэша /var/cache/apache2/mod_disk_cache не заполняется со временем, мы должны очищать ее с помощью команды htcacheclean. Эта команда является частью пакета apache2-utils, который мы устанавливаем следующим образом:

apt-get install apache2-utils 

После этого мы можем запустить htcacheclean как демон следующим образом:

htcacheclean -d30 -n -t -p /var/cache/apache2/mod_disk_cache -l 100M -i

Это будет очищать нашу директорию кэша каждые 30 минут и гарантировать, что она не станет больше 100 МБ. Чтобы узнать больше о htcacheclean, посмотрите на

man htcacheclean

Конечно, вы не хотите запускать htcacheclean вручную каждый раз, когда перезагружаете сервер - поэтому мы редактируем /etc/rc.local…

vi /etc/rc.local

… и добавляем следующую строку перед строкой exit 0:

| [...] /usr/sbin/htcacheclean -d30 -n -t -p /var/cache/apache2/mod_disk_cache -l 100M -i [...] |

Это будет автоматически запускать htcacheclean каждый раз, когда вы запускаете сервер.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.